首页  >  文章  >  数据库  >  如何使用'SELECT * WHERE NOT EXISTS”正确检索丢失的数据?

如何使用'SELECT * WHERE NOT EXISTS”正确检索丢失的数据?

Patricia Arquette
Patricia Arquette原创
2024-11-26 15:34:10769浏览

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