Code Tu Tam

Toán tử MySQL MINUS và cách mô phỏng MySQL MINUS

5/5 - (1 bình chọn)

Trong bài viết này, chúng ta sẽ cùng tìm hiểu về toán tử MINUS trong SQL và cách mô phỏng MINUS trong MySQL bằng phép nối.

Lưu ý rằng MySQL không hỗ trợ MINUStoán tử. Hướng dẫn này chỉ cho bạn cách mô 
phỏng toán tử MINUS trong MySQL bằng cách sử dụng các mệnh đề nối.

Giới thiệu về toán tử SQL MINUS

Toán tử MINUS là một trong ba toán tử tập hợp trong tiêu chuẩn SQL bao gồm UNIONINTERSECT và.

MINUS so sánh kết quả của hai truy vấn và trả về các hàng riêng biệt từ tập kết quả của truy vấn đầu tiên không xuất hiện trong tập kết quả của truy vấn thứ hai.

Sau đây minh họa cú pháp của toán tử MINUS:

SELECT select_list1 
FROM table_name1
MINUS 
SELECT select_list2 
FROM table_name2;

Các quy tắc cơ bản cho truy vấn sử dụng toán tử MINUS như sau:

Giả sử rằng 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);

Truy vấn sau đây trả về các giá trị riêng biệt từ truy vấn của bảng t1 không được tìm thấy trong kết quả truy vấn của bảng t2.

SELECT id FROM t1
MINUS
SELECT id FROM t2;

Biểu đồ Venn sau đây minh họa cách hoạt động của MINUS:

Lưu ý rằng một số hệ thống cơ sở dữ liệu, chẳng hạn như Microsoft SQL Server và PostgreSQL sử dụng phần mở rộng EXCEPTthay vì MINUS. Chúng có cùng chức năng.

Mô phỏng toán tử MySQL MINUS

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

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

SELECT 
    select_list
FROM 
    table1
LEFT JOIN table2 
    ON join_predicate
WHERE 
    table2.column_name IS NULL;

Ví dụ: truy vấn sau sử dụng mệnh đế LEFT JOIN để 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;

Tổng kết

Trong bài viết này, bạn đã học về toán tử MINUS trong SQL và cách mô phỏng toán tử MINUS trong MySQL bằng cách sử dụng mệnh đề LEFT JOIN.

Các bạn có thể tham khảo: https://www.mysqltutorial.org/mysql-minus/

Các bài viết liên quan:

 

Exit mobile version