如何使用 SQL 检查记录是不是存在?
Posted
技术标签:
【中文标题】如何使用 SQL 检查记录是不是存在?【英文标题】:How do I use SQL to check whether a record exists?如何使用 SQL 检查记录是否存在? 【发布时间】:2013-10-09 01:54:16 【问题描述】:我有一个名为 HRRM 的员工记录 SQL 表。此表具有employeeID、FirstName、LastName 等字段。
SQL 中有另一个表称为 HREC。此表已加入 HRRM 并包含紧急联系人详细信息。
基本上,HRRM 中的每个员工都可以在 HREC 中拥有多个紧急联系人。
如何从 HRRM 中选择在 HREC 中没有任何记录的所有员工?
【问题讨论】:
【参考方案1】:如何从
HRRM
中选择在HREC
中没有任何记录的所有员工?
这个英文语句几乎逐字翻译成 SQL:
SELECT *
FROM HRRM e
WHERE NOT EXISTS (SELECT * FROM HREC r WHERE r.emp_id=e.emp_id)
一种不那么简单的方法是使用外部JOIN
:
SELECT e.*
FROM HRRM e
LEFT OUTER JOIN HREC r ON r.emp_id=e.emp_id
WHERE r.emp_id IS NULL
【讨论】:
【参考方案2】:使用不存在:
SELECT * FROM HRRM R
WHERE NOT EXISTS (SELECT * FROM HREC E WHERE R.EMP_ID=E.EMP_ID)
不应该使用join,除非你同时使用DISTINCT
【讨论】:
以上是关于如何使用 SQL 检查记录是不是存在?的主要内容,如果未能解决你的问题,请参考以下文章