使用“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中文网其他相关文章!