SQL EXISTS
用 EXISTS 檢查是否存在相關資料
EXISTS 經常搭配子查詢,用來判斷是否存在至少一筆符合條件的紀錄。它很適合做「有沒有下單」、「有沒有明細」這類判斷。
Example 1 - 找有訂單的客戶
SELECT CustomerName FROM Customers c WHERE EXISTS ( SELECT 1 FROM Orders o WHERE o.CustomerID = c.CustomerID );
Example 2 - 找沒有訂單的客戶
SELECT CustomerName FROM Customers c WHERE NOT EXISTS ( SELECT 1 FROM Orders o WHERE o.CustomerID = c.CustomerID );
Example 3 - 找有高運費訂單的客戶
SELECT CustomerName
FROM Customers c
WHERE EXISTS (
SELECT 1 FROM Orders o
WHERE o.CustomerID = c.CustomerID
AND o.Freight > 100
);Example 4 - EXISTS 搭配產品分類
SELECT CategoryName FROM Categories c WHERE EXISTS ( SELECT 1 FROM Products p WHERE p.CategoryID = c.CategoryID );