Toán tử EXISTS trong SQL được sử dụng để kiểm tra sự tồn tại của ít nhất một bản ghi thỏa mãn điều kiện trong một truy vấn con (subquery). Nó trả về TRUE nếu truy vấn con trả về ít nhất một hàng và FALSE nếu truy vấn con không trả về bất kỳ hàng nào.
Cú pháp:
SELECT column_name(s) FROM table_name WHERE EXISTS (SELECT column_name FROM table_name WHERE condition);
Giải thích:
- SELECT, FROM: Giống như trong các câu lệnh SQL khác.
- table_name: Bảng chính chứa dữ liệu.
- WHERE: Điều kiện lọc dữ liệu chính.
- EXISTS (subquery): Kiểm tra sự tồn tại của các bản ghi thỏa mãn điều kiện trong truy vấn con.
Ví dụ:
--Tìm kiếm tất cả khách hàng đã từng đặt hàng: SELECT * FROM Customers WHERE EXISTS ( SELECT * FROM Orders WHERE Orders.CustomerID = Customers.CustomerID ); --Tìm kiếm tất cả sản phẩm thuộc các danh mục có sản phẩm đang được bán: SELECT * FROM Products WHERE EXISTS ( SELECT * FROM OrderItems WHERE OrderItems.ProductID = Products.ProductID ); --Tìm kiếm tất cả nhân viên có lương cao hơn lương trung bình của phòng ban: SELECT * FROM Employees WHERE EXISTS ( SELECT * FROM ( SELECT AVG(Salary) AS AverageSalary FROM Employees WHERE DepartmentID = Employees.DepartmentID ) AS AvgSalary WHERE Employees.Salary > AvgSalary.AverageSalary );
Lưu ý:
- Toán tử EXISTS chỉ kiểm tra sự tồn tại của các bản ghi, không trả về dữ liệu từ truy vấn con.
- Bạn có thể sử dụng toán tử NOT EXISTS để kiểm tra xem không có bất kỳ bản ghi nào thỏa mãn điều kiện trong truy vấn con.
- Toán tử EXISTS thường được sử dụng để thay thế cho các phép JOIN phức tạp trong một số trường hợp.