Dùng toán tử EXISTS để kiểm tra subquery có trả về hàng nào không.
Cú pháp
WHERE EXISTS (Subquery)
EXISTS (subquery) trả về TRUE nếu subquery trả về ít nhất 1 hàng, ngược lại FALSE.
Ví dụ
Dữ liệu Customers, Reservations:
mysql> Select * from Customers; +-------------+----------+ | Customer_Id | Name | +-------------+----------+ | 1 | Rahul | | 2 | Yashpal | | 3 | Gaurav | | 4 | Virender | +-------------+----------+ mysql> Select * from Reservations; +------+-------------+------------+ | ID | Customer_id | Day | +------+-------------+------------+ | 1 | 1 | 2017-12-30 | | 2 | 2 | 2017-12-28 | | 3 | 2 | 2017-12-29 | | 4 | 1 | 2017-12-25 | | 5 | 3 | 2017-12-26 | +------+-------------+------------+
Tìm khách hàng đã đặt chỗ:
mysql> Select Name from customers
WHERE EXISTS (SELECT * FROM Reservations
WHERE Customers.customer_id = Reservations.customer_id);
+---------+
| Name |
+---------+
| Rahul |
| Yashpal |
| Gaurav |
+---------+
3 rows in set (0.06 sec)
Trả về 3 khách hàng có bản ghi trong Reservations. Đây là correlated subquery (tham chiếu Customers.customer_id từ ngoài).