使用「SELECT * WHERE NOT EXISTS」檢索遺失的資料
問題:
到從表中檢索數據,其中某些單元格不存在於另一個表中,用戶實現了以下操作查詢:
SELECT * from employees WHERE NOT EXISTS (SELECT name FROM eotm_dyn)
但是,儘管已知缺失數據,此查詢不會傳回任何結果。
解決方案:
要解決此問題,它需要根據公共鍵(例如employeeID)連接兩個表。如果第二個表包含任何數據,則在沒有連接的情況下使用 NOT EXISTS 將始終不會產生任何結果。
正確的查詢(假設僱員 ID 是連接鍵)是:
SELECT * FROM employees e WHERE NOT EXISTS ( SELECT null FROM eotm_dyn d WHERE d.employeeID = e.id )
或者,a效率較低的方法是使用 LEFT JOIN 並過濾掉 NULL 值。
以上是如何使用「SELECT * WHERE NOT EXISTS」正確擷取遺失的資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!