3.05 在一个表中查找与其他表不匹配的记录
Posted 长城之上是千亿的星空,星空之上是不灭的守望。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.05 在一个表中查找与其他表不匹配的记录相关的知识,希望对你有一定的参考价值。
问题:对于具有相同关键字的两个表,要在一个表中查找与另外一个不匹配的行。例如,要查找没有职员的部门.
要查找部门中每个员工的工作岗位需要在表需要在表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 在一个表中查找与其他表不匹配的记录的主要内容,如果未能解决你的问题,请参考以下文章