码迷,mamicode.com
首页 > 其他好文 > 详细

3.05 在一个表中查找与其他表不匹配的记录

时间:2017-09-14 10:41:38      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:联结   dep   join   nbsp   筛选   表之间   需要   编号   select   

问题:对于具有相同关键字的两个表,要在一个表中查找与另外一个不匹配的行。例如,要查找没有职员的部门.

要查找部门中每个员工的工作岗位需要在表需要在表deptno及emp中有一个等值联接。deptno列就是这两个表之间的公共值。但是,等值联接却不能直接显示出那个部门没有员工。这是因为在表emp和dept正在等值联接时,将会返回满足联接条件的所有行。可是我们只需要那些在表dept中不满足联接条件的行。

尽管乍看起来这个问题同前一个问题类似,但是要更复杂一些。其不同之处就是在前一个问题中,需要列出在表dept中找出在表emp中没有的部门编号。本节要求可以直接列出dept表中其他的列,而不仅仅是部门编号。

 

使用外联结及NULL筛选(outer关键字是可选的):

select d.* from dept d left outer join emp e on (d.deptno = e.deptno) where e.deptno is null;

3.05 在一个表中查找与其他表不匹配的记录

标签:联结   dep   join   nbsp   筛选   表之间   需要   编号   select   

原文地址:http://www.cnblogs.com/liang545621/p/7518467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!