Cách sử dụng lệnh EXISTS trong MySQL


- Trong hệ quản trị cơ sở dữ liệu MySQL, lệnh EXISTS được dùng để kiểm tra một lệnh truy vấn con, nếu lệnh truy vấn con trả về ít nhất một hàng (bản ghi) thì lệnh EXISTS sẽ trả về giá trị TRUE, còn nếu không thì lệnh EXISTS sẽ trả về giá trị FALSE.

- Trong bài học này, tôi sẽ sử dụng ba cái bảng Customers, Orders, Products lần lượt như bên dưới để làm một số ví dụ minh họa.

CustomerID CustomerName City
1 Nguyễn Thành Nhân Cần Thơ
2 Huỳnh Văn Thiên Vĩnh Long
3 Doãn Quốc Thiên Thanh Sóc Trăng
4 Trần Duy Hưng Bạc Liêu
5 Lê Thị Anh Thư Hậu Giang
ProductID ProductName Price
1 Mì hảo hảo sa tế hành 4500
2 Kem đánh răng PS muối 22000
OrderID OrderDate CustomerID Total
1 2019-02-07 1 180000
2 2019-02-18 4 140000
3 2019-03-11 5 280000
4 2019-04-22 2 235000
5 2019-06-13 3 220000
6 2019-07-25 1 165000
7 2019-09-10 3 350000
8 2019-09-30 5 115000
Ví dụ 1:
SELECT *
FROM Customers
WHERE EXISTS (SELECT * FROM Products WHERE Price = 35000);

- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như sau:

CustomerID CustomerName City
Ví dụ 2:
SELECT *
FROM Customers
WHERE EXISTS (SELECT * FROM Products WHERE Price = 22000);

- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như sau:

CustomerID CustomerName City
1 Nguyễn Thành Nhân Cần Thơ
2 Huỳnh Văn Thiên Vĩnh Long
3 Doãn Quốc Thiên Thanh Sóc Trăng
4 Trần Duy Hưng Bạc Liêu
5 Lê Thị Anh Thư Hậu Giang
Ví dụ 3:

- Liệt kê những khách hàng đã có ít nhất một lần thanh toán hóa đơn trên 200.000đ

SELECT *
FROM Customers
WHERE EXISTS
(SELECT * FROM Orders WHERE (Orders.CustomerID = Customers.CustomerID) AND (Total > 200000));

- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như sau:

CustomerID CustomerName City
2 Huỳnh Văn Thiên Vĩnh Long
3 Doãn Quốc Thiên Thanh Sóc Trăng
5 Lê Thị Anh Thư Hậu Giang