Toán tử INTERSECT trong Oracle
Trong Oracle, toán tử INTERSECT có tác dụng ngược lại với toán tử UNION, nghĩa là nó dùng để gộp hai câu lệnh SELECT lại với nhau và chọn ra những record có dữ liệu trùng nhau, nghĩa là record nào ở A mà xuất hiện ở B nữa thì mới được chọn.
Toán tử này ta gọi là toán tử hợp.
1. Cú pháp toán tử INTERSECT trong Oracle
Toán tử INTERSECT sẽ đặt giữa hai câu lệnh SELECT.
SELECT expression1, expression2, ... expression_n FROM table1 WHERE conditions INTERSECT SELECT expression1, expression2, ... expression_n FROM table2 WHERE conditions;
Các tham số quá quen thuộc với bạn rồi nên mình sẽ không giải thích gì thêm.
Bài viết này được đăng tại [free tuts .net]
SELECT name FROM students INTERSECT SELECT name FROM score
2. Ví dụ INTERSECT đơn giản
Giả sử mình có bảng Suppliers
và bảng Order_details
như sau:
Bảng Suppliers:
Bảng Order_details:
Mình sẽ viết câu truy vấn như sau:
SELECT supplier_id FROM suppliers INTERSECT SELECT supplier_id FROM order_details;
Nhìn vào câu truy vấn ta sẽ thấy kết quả trả về sẽ gồm những record supplier_id
giống nhau.
3. Ví dụ INTERSECT có WHERE
Giả sử mình có hai bảng như sau:
Bảng Supplier:
Bảng Customer:
Mình sẽ lọc điều kiện như sau:
- Ở bảng Supplier có firstname khác "dhirubhai"
- Ở bảng Customer có customer_id < 5
SELECT supplier_id, last_name, first_name FROM supplier WHERE first_name <> 'dhirubhai' INTERSECT SELECT customer_id, last_name, first_name FROM customer WHERE customer_id < 5;
Kế quả:
4. Lời kết
Như vậy là mình đã giới thiệu xong cách sử dụng toán tử INTERSECT trong Oracle, cách sử dụng khá đơn giản, bạn cứ liên tưởng tới toán tử hợp trong toán học. Bài tiếp theo chúng ta sẽ học toán tử MINUS.