EXISTS 條款

客戶表

ID 名字
1 ÖzgUr OZTURK
2 優素福 MEDI
3 亨利

訂單表

ID 顧客 ID
1 2 123.50
2 3 14.80

為所有客戶提供至少一個訂單

SELECT * FROM Customer WHERE EXISTS (
    SELECT * FROM Order WHERE Order.CustomerId=Customer.Id
)

結果

ID 名字
2 優素福 MEDI
3 亨利

讓所有客戶無需訂購

SELECT * FROM Customer WHERE NOT EXISTS (
    SELECT * FROM Order WHERE Order.CustomerId = Customer.Id
)

結果

ID 名字
1 ÖzgUr OZTURK

目的

EXISTSINJOIN 有時會用於相同的結果,但是,它們不等於:

  • EXISTS 應該用於檢查另一個表中是否存在值
  • IN 應該用於靜態列表
  • 應使用 JOIN 從其他(s)表中檢索資料