如何使用 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 检查记录是不是存在?的主要内容,如果未能解决你的问题,请参考以下文章

如何在SQL Server2005数据库中检查一个表是不是存在,如存在就删除表记录,如不存在就建表.

如何使用 Python MySQdb 检查记录是不是存在

如何检查sql的第一列或第二列中是不是存在一个特定值?

如何检查刀片中是不是存在记录?

SQL 检查记录是不是存在

如何使用 .forEach() 插入多个集合并检查它是不是存在