Toán tử MINUS trong SQL được sử dụng với hai câu lệnh SELECT dùng để loại bỏ tập kết quả thu được bởi truy vấn SELECT đầu tiên khỏi tập kết quả thu được bởi truy vấn SELECT thứ hai.
Đơn giản, chúng ta có thể nói rằng toán tử MINUS sẽ chỉ trả về những hàng chỉ xuất hiện trong câu truy vấn SELECT đầu tiên mà không chứa trong câu truy vấn thứ hai.
Phép trừ có thể mô tả được bởi hình sau:
Như bạn có thể thấy trong sơ đồ trên, toán tử MINUS sẽ chỉ trả về những hàng có trong tập kết quả từ Table1 và không có trong tập kết quả của Table2.
Cú pháp
SELECT column1 , column2 , ... columnN FROM table_name WHERE condition MINUS SELECT column1 , column2 , ... columnN FROM table_name WHERE condition;
Ví dụ
Cho 2 bảng Table1 và Table2 như sau:
Table1
Name | Address | Age | Grade |
Harsh | Delhi | 20 | A |
Gaurav | Jaipur | 21 | B |
Pratik | Mumbai | 21 | A |
Dhanraj | Kolkata | 22 | B |
Table2
Name | Age | Phone | Grade |
Akash | 20 | xxxxxxxxxx | A |
Dhiraj | 21 | xxxxxxxxxx | B |
Vaibhav | 21 | xxxxxxxxxx | A |
Dhanraj | 22 | xxxxxxxxxx | B |
SELECT NAME, AGE , GRADE FROM Table1 MINUS SELECT NAME, AGE, GRADE FROM Table2
Kết quả: Truy vấn trên sẽ chỉ trả về những hàng duy nhất trong ‘Table1’. Chúng ta có thể thấy rõ rằng các giá trị trong các trường NAME, AGE và GRADE cho hàng cuối cùng trong cả hai bảng là như nhau. Do đó, đầu ra sẽ là ba hàng đầu tiên từ Table1. Kết quả thu được được hiển thị bên dưới:
Name | Age | Grade |
Harsh | 20 | A |
Gaurav | 21 | B |
Pratik | 21 | A |
Lưu ý: Toán tử MINUS không được hỗ trợ với tất cả các cơ sở dữ liệu. Nó được hỗ trợ bởi cơ sở dữ liệu Oracle, còn trong SQL hoặc PostgreSQL thì không.
Nguồn tham khảo
https://www.geeksforgeeks.org/sql-minus-operator/