Toán tử PostgreSQL IN
TRONG
Toán tử IN
cho phép bạn chỉ định danh sách các giá trị có thể có trong mệnh đề WHERE.
Toán tử IN
là cách viết tắt của nhiều điều kiện OR
.
Ví dụ
Trả lại tất cả khách hàng từ 'Đức', Pháp' hoặc 'Anh':
SELECT * FROM customers
WHERE country IN ('Germany', 'France', 'UK');
Chạy ví dụ »KHÔNG VÀO
Bằng cách sử dụng từ khóa NOT
phía trước toán tử IN
, bạn trả về tất cả các bản ghi KHÔNG có bất kỳ giá trị nào trong danh sách.
Ví dụ
Trả lại tất cả khách hàng KHÔNG đến từ 'Đức', Pháp' hoặc 'Anh':
SELECT * FROM customers
WHERE country NOT IN ('Germany', 'France', 'UK');
Chạy ví dụ »VÀO (CHỌN)
Bạn cũng có thể sử dụng câu lệnh SELECT
bên trong dấu ngoặc đơn để trả về tất cả các bản ghi nằm trong kết quả của câu lệnh SELECT
.
Ví dụ
Trả về tất cả khách hàng có đơn hàng trong bảng orders
:
SELECT * FROM customers
WHERE customer_id IN (SELECT customer_id FROM orders);
Chạy ví dụ »KHÔNG VÀO (CHỌN)
Kết quả ở ví dụ trên trả về 89 bản ghi, tức là có 2 khách hàng chưa đặt đơn hàng nào.
Hãy để chúng tôi kiểm tra xem điều đó có đúng không bằng cách sử dụng toán tử NOT IN
.
Ví dụ
Trả về tất cả khách hàng CHƯA đặt bất kỳ đơn hàng nào trong bảng orders
:
SELECT * FROM customers
WHERE customer_id NOT IN (SELECT customer_id FROM orders);
Chạy ví dụ »