Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách kiểm tra sự tồn tại bản ghi trong subquery MySQL bằng EXISTS


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).