Phép toán INTERSECT trong SQL được sử dụng để trả về các hàng mà có trong cả hai tập hợp kết quả của hai câu lệnh SELECT khác nhau. Cụ thể, INTERSECT sẽ trả về các dòng dữ liệu mà xuất hiện ở cả hai tập hợp kết quả của các câu lệnh SELECT.
Using The INTERSECT operator – Toán tử INTERSECT trong SQL
Cú pháp của INTERSECT
Cú pháp chung để sử dụng INTERSECT trong SQL là:
SELECT column1, column2, ... FROM table1 INTERSECT SELECT column1, column2, ... FROM table2;
Trong đó:
- SELECT column1, column2, … là các cột mà bạn muốn chọn từ các bảng hoặc các điều kiện.
- table1 và table2 là các bảng hoặc các câu lệnh SELECT mà bạn muốn thực hiện phép INTERSECT.
Ví dụ về sử dụng INTERSECT
Giả sử bạn có hai bảng Products và FeaturedProducts, và bạn muốn tìm các sản phẩm có trong cả hai bảng. Dưới đây là ví dụ cụ thể:
Bảng Products
product_id | product_name |
---|---|
1 | Laptop |
2 | Smartphone |
3 | Tablet |
4 | Headphones |
5 | Monitor |
Bảng FeaturedProducts
product_id | product_name |
---|---|
1 | Laptop |
3 | Tablet |
5 | Monitor |
6 | Keyboard |
Bạn muốn lấy ra các sản phẩm có trong cả hai bảng Products và FeaturedProducts. Bạn có thể sử dụng INTERSECT như sau:
SELECT product_id, product_name FROM Products INTERSECT SELECT product_id, product_name FROM FeaturedProducts;
Kết quả sẽ là: (các rows chung kết quả với nhau ở cả 2 table)
product_id | product_name |
---|---|
1 | Laptop |
3 | Tablet |
5 | Monitor |
Điều kiện và lưu ý khi sử dụng INTERSECT
- Các SELECT phải có cùng số lượng cột: Mỗi câu lệnh SELECT trong phép INTERSECT phải trả về cùng số lượng cột với cùng kiểu dữ liệu hoặc có thể chuyển đổi ngầm định.
- Các cột phải có cùng kiểu dữ liệu hoặc có thể chuyển đổi: Các cột được chọn từ các câu lệnh SELECT phải có cùng kiểu dữ liệu hoặc có thể chuyển đổi ngầm định.
- INTERSECT loại bỏ các dòng trùng lặp: Kết quả của INTERSECT sẽ bao gồm các hàng duy nhất mà có trong cả hai tập hợp kết quả.
- Phép toán INTERSECT chỉ hoạt động cho các hàng duy nhất: Nếu có các dòng trùng lặp trong một trong hai bảng, phép toán INTERSECT sẽ xem xét mỗi hàng như là một dòng duy nhất.
Túm lại nhé:
Phép toán INTERSECT trong SQL là một cách mạnh mẽ để tìm các dòng dữ liệu chung giữa hai tập hợp kết quả khác nhau từ các câu lệnh SELECT. Nó hữu ích khi bạn cần tìm ra các bản ghi có trong cả hai bảng hoặc tìm sự tương đồng giữa các tập dữ liệu khác nhau. Hãy đảm bảo rằng các câu lệnh SELECT trong phép INTERSECT của bạn phù hợp về cả cấu trúc cột và kiểu dữ liệu để tránh lỗi và đảm bảo tính chính xác của kết quả.