1. Toán tử IN

Các toán tử IN cho phép chỉ định nhiều giá trị trong một mệnh đề WHERE. Các toán tử IN cũng có thể hiểu là một cách viết tắt cho nhiều điều kiện của toán tử OR

Cú pháp của toán tử IN như sau:

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);

Hoặc có thể viết câu lệnh truy vấn trong toán tử IN như sau:

SELECT column_name(s)
FROM table_name
WHERE column_name IN (SELECT statement);

2. Ví dụ toán tử IN

Dưới đây là bảng KhachHang bao gồm các cột: ID, TenKH, DiaChi, ThanhPho, SoDienThoai

ID TenKH DiaChi ThanhPho SoDienThoai
1 Nguyen Van A Tay Ho Ha Noi 0888999888
2 Nguyen Van B Quan 5 Ho Chi Minh 0988988988
3 Nguyen Van C Quan 7 Ho Chi Minh 0899899899
4 Nguyen Van D Bac Tu Liem Ha Noi 0788788788
5 Nguyen Van E Ngo Quen Hai Phong 0858585858
6 Nguyen Van F Ngu Hanh Son Da Nang 0969696969
7 Nguyen Van G Tay Ho Ha Noi 0838383838

Câu lệnh dưới đây sẽ chọn ra tất cả khách hàng có thành phố là “Ha Noi” , “Hai Phong” hoặc “Da Nang”, để thực hiện được việc này, ta sẽ sử dụng toán tử IN

SELECT * FROM KhachHang
WHERE ThanhPho IN ('Ha Noi', 'Hai Phong', 'Da Nang');

Kết quả như sau:

ID TenKH DiaChi ThanhPho SoDienThoai
1 Nguyen Van A Tay Ho Ha Noi 0888999888
4 Nguyen Van D Bac Tu Liem Ha Noi 0788788788
5 Nguyen Van E Ngo Quen Hai Phong 0858585858
6 Nguyen Van F Ngu Hanh Son Da Nang 0969696969
7 Nguyen Van G Tay Ho Ha Noi 0838383838

Để lấy ra các thông tin các khách hàng không có thành phố ở “Ha Noi” , “Hai Phong” hoặc “Da Nang” ta cần sử dụng đến toán tử phủ định của IN đó là toán tử NOT IN

SELECT * FROM KhachHang 
WHERE ThanhPho NOT IN ('Ha Noi', 'Hai Phong', 'Da Nang');

Kết quả:

ID TenKH DiaChi ThanhPho SoDienThoai
2 Nguyen Van B Quan 5 Ho Chi Minh 0988988988
3 Nguyen Van C Quan 7 Ho Chi Minh 0899899899

Câu lệnh dưới đây lấy ra thông tin những khách hàng chưa từng đặt hàng trong bảng DatHang bằng câu lệnh NOT IN bên trong là câu truy vấn SELECT đến bảng DatHang

SELECT * FROM KhachHang
WHERE ID NOT IN (SELECT KhachHangID FROM DatHang);

Câu lệnh ở trên sẽ lấy ra các ID trong bảng KhachHang đi kiểm tra với các KhachHangID trong bảng DatHang, nếu ID nào không có trong câu lệnh SELECT KhachHangID FROM DatHang thì thông tin của khách hàng đó trong bảng KhachHang sẽ được chọn ra.