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.

Ví dụ
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.

-------------------#####-------------------

Lưu ý: bài viết có tham khảo hoặc dịch lại từ http://javatpoint.com.

Nguồn: freetuts.net