oracle exists

exists(查询语句) : 存在的意思,判断一张表里面的记录是否存在与另外一张表中。
emp表中的部门号为 10,20,30
oracle exists_第1张图片
部门表中,dept中的部门号为 9,10,20,30,40,50
oracle exists_第2张图片

需求,查询出有员工的部门(查询出存在于emp表中的dept信息)
oracle exists_第3张图片
似乎没有效果,结果查询出的是所有的dept信息。
指定deptno的值,也没效果
select * from dept d1 where exists(select * from emp e1 where e1.deptno=10 );等同于
select * from dept d1 where 1 = 1

oracle exists_第4张图片


改进下写法,添加exists 后面,emp表与dept表的关联关系
oracle exists_第5张图片

总结:在使用exists的时候,要注意关联exists前后两张表。 

你可能感兴趣的:(Sql)