MySQL - 返回在另一个表中没有匹配的实体的名称

时间:2018-02-01 20:09:26

标签: mysql join left-join

我一直在这里寻找答案,但我最后才进入圈内。

无论如何,假设我有两张桌子:

员工,其属性为 first_name,last_name,middle_initial, ESSN

属性 essn,dependent_name 关系

dependents

我想简单列出所有没有家属的部门经理的姓名 如果将!=设置为=,我试图使用的代码可以使用,并给出匹配结果。

如何提取不匹配的结果?

select employee.first_name, employee.middle_initial, employee.last_name
from employee join dependent on employee.essn = dependent.essn
where employee.essn != dependent.essn
group by employee.first_name;

我也尝试使用!=与部门经理的ESSN,但我遇到了同样的问题。

2 个答案:

答案 0 :(得分:1)

可以更容易实现:

select first_name from employee where essn not in (select essn from dependent);

答案 1 :(得分:0)

我会使用left join where dependent.essn is null

select employee.first_name, employee.middle_initial, employee.last_name
from employee 
left join dependent 
on employee.essn = dependent.essn
where dependent.essn is null

我的不好......我注意到这是mysql ..我认为它与mssql相同