【发布时间】:2010-05-30 15:17:39
【问题描述】:
我要如下表;
- 员工:姓名 nvarchar(50)、职务 nvarchar(50) 和薪水 int。
- 雇主:姓名 nvarchar(50),职位 nvarchar(50)
我想从“雇主”表中选择“职位”未显示在“员工”表中的每个项目。
我知道这是一个简单的查询,但它让我很难过。 我会很感激任何帮助。谢谢。
【问题讨论】:
标签: sql-server sql-server-2008
我要如下表;
我想从“雇主”表中选择“职位”未显示在“员工”表中的每个项目。
我知道这是一个简单的查询,但它让我很难过。 我会很感激任何帮助。谢谢。
【问题讨论】:
标签: sql-server sql-server-2008
select * from employers
where jobtitle not in (select jobtitle
from employees
where jobtitle is not null);
我会考虑为员工和雇主创建一个包含外键的工作表
编辑 - 感谢所有非空修复
【讨论】:
null,则此查询将返回零行。 x not in (null, 'a', ... -> x <> null and x <> 'a' and .. 评估为未知
where jobtitle is not null 添加到子选择中来修复。
您可以使用连接:
select *
from employers
left join (
select distinct jobtile
from employees
) emp on employers.jobtitle = emp.jobtitle
where emp.jobtitle is null
Itchi 的方法更具可读性,但不要忘记子查询末尾的where jobtitle is not null :)
【讨论】: