首頁  >  文章  >  資料庫  >  如何使用「SELECT * WHERE NOT EXISTS」正確擷取遺失的資料?

如何使用「SELECT * WHERE NOT EXISTS」正確擷取遺失的資料?

Patricia Arquette
Patricia Arquette原創
2024-11-26 15:34:10768瀏覽

How to Correctly Retrieve Missing Data Using `SELECT * WHERE NOT EXISTS`?

使用「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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn