MySQL MINUS

Tóm tắt: trong hướng dẫn này, bạn sẽ tìm hiểu về toán tử SQL MINUS và cách mô phỏng toán tử MySQL MINUS bằng cách sử dụng phép nối.

Introduction to SQL MINUS operator

MINUS là một trong ba hoạt động được thiết lập trong tiêu chuẩn SQL bao gồm UNION, INTERSECT và MINUS.

MINUS so sánh kết quả của hai truy vấn và trả về các hàng khác nhau từ truy vấn đầu tiên được tạo ra bởi truy vấn thứ hai.

The following illustrates the syntax of the MINUS operator:

SELECT column_list_1 FROM table_1
MINUS 
SELECT columns_list_2 FROM table_2;
Các quy tắc cơ bản cho truy vấn sử dụng toán tử MINUS như sau:
+ Số lượng và thứ tự của các cột trong cả cột_list_1 và cột_list_2 phải giống nhau.
+ Các kiểu dữ liệu của các cột tương ứng trong cả hai truy vấn phải tương thích.
Giả sử chúng ta có hai bảng t1 và t2 với cấu trúc và dữ liệu sau:
CREATE TABLE t1 (id INT PRIMARY KEY);
CREATE TABLE t2 (id INT PRIMARY KEY);
INSERT INTO t1 VALUES (1),(2),(3);
INSERT INTO t2 VALUES (2),(3),(4);
SELECT id FROM t1
MINUS
SELECT id FROM t2; 

Biểu đồ Venn sau minh họa toán tử MINUS:

Lưu ý rằng một số hệ thống cơ sở dữ liệu, ví dụ: Microsoft SQL Server, PostgreSQL, v.v., sử dụng EXCEPT thay vì MINUS, có cùng chức năng.

MySQL MINUS operator

Thật không may, MySQL không hỗ trợ toán tử MINUS. Tuy nhiên, bạn có thể sử dụng JOIN MySQL để mô phỏng nó.

Để mô phỏng MINUS của hai truy vấn, bạn sử dụng cú pháp sau:

SELECT 
    column_list 
FROM 
    table_1
    LEFT JOIN table_2 ON join_predicate
WHERE 
    table_2.id IS NULL; 

Ví dụ: truy vấn sau sử dụng mệnh đề LEFT THAM GIA để trả về kết quả giống như toán tử MINUS:

SELECT 
    id
FROM
    t1
        LEFT JOIN
    t2 USING (id)
WHERE
    t2.id IS NULL;
mysql> SELECT id FROM t1;
+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
+----+
mysql> SELECT id FROM t2;
+----+
| id |
+----+
|  2 |
|  3 |
|  4 |
+----+
mysql> SELECT id FROM t1 LEFT JOIN t2 USING(id);
+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
+----+
mysql> SELECT id FROM t1 LEFT JOIN t2 USING(id) WHERE t2.id IS NULL;
+----+
| id |
+----+
|  1 |
+----+

Trong hướng dẫn này, bạn đã tìm hiểu về toán tử SQL MINUS và cách triển khai toán tử MINUS MySQL bằng mệnh đề LEFT THAM GIA.

Last updated