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

Cách lọc dữ liệu với subquery MySQL dùng IN


Dùng từ khóa IN để lọc dữ liệu dựa trên kết quả subquery. Subquery xuất hiện trong ngoặc sau IN.

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 |
+------+-------------+------------+

Lọc khách hàng có đặt chỗ:

mysql> SELECT * from customers 
    WHERE customer_id IN (Select customer_id from reservations);
+-------------+----------+
| Customer_Id | Name     |
+-------------+----------+
|           1 | Rahul    |
|           2 | Yashpal  |
|           3 | Gaurav   |
+-------------+----------+
3 rows in set (0.00 sec)

Giải thích: Subquery trả về danh sách customer_id từ Reservations, truy vấn ngoài lọc Customers khớp với danh sách đó. Tương đương = ANY.