【问题标题】:SQL SELECT when child table contains zero rows子表包含零行时的 SQL SELECT
【发布时间】:2013-03-30 12:35:25
【问题描述】:

假设我有两张桌子:

Table A
employeeID (int)
employeeName (varchar)
employeeDOB (varchar)

Table B
employeeID (int)
holidaysUsed (int)

表 B 通过employeeID 与表 A 相关联。表 B 可以有零或多行链接到单个员工 ID。我想对表 A 执行 SELECT,但仅在表 B 中没有相应记录时才检索表 A 中的行。

我对此有一些想法,但我想确保我使用的是最佳查询。任何帮助将不胜感激。

其他信息

数据库平台:SQL Server 2008 R2

典型的返回数据集大小平均 1000 条记录。

【问题讨论】:

  • employeeID 在任一表中是否可以为空?
  • 任一表中的employeeID都不能为NULL。

标签: sql sql-server select sql-server-2008-r2


【解决方案1】:

SELECT * FROM A WHERE employeeID NOT IN (SELECT employeeID FROM B);

【讨论】:

  • 另一种方法是select a.* from a left join b on b.employeeID=a.employeeID where b.employeeID is null。顺便说一句,可能会更快。
猜你喜欢
  • 2014-12-17
  • 2012-09-04
  • 2011-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-14
  • 1970-01-01
相关资源
最近更新 更多