外连接并不陌生,可一直以来习惯于ANSI语法, 在传统的(+)出现时总是不能第一时间反映过来,现在记录以备忘。
简单的说,当两个进行连接时,若在连接条件不满足时仍然希望返回一张表的数据,此时需要用到外连接。Oracle传统的外连接语法使用(+)来指明外连接。该符号出现的一侧的表为可能缺失信息的表。
例如希望对AB两表进行外连接查询,并返回A中所有的的记录是,应该将(+)放置在连接条件B表一侧
select * from emp e, depart d where e.dep_id = d.dep_id(+);
该查询返回所有的员工信息,包括未分配部门的新员工。
与之对应的ANSI语法是:
select * from emp e left outer join depart d on e.dep_id = d.dep_id;
或者:
select * from depart d right outer join emp e on e.dep_id = d.dep_id;
ANSI语法中,方向谓词(left, right)指明了完全信息的表在两表中的相对位置。
:END
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21402791/viewspace-666723/
,如需转载,请注明出处,否则将追究法律责任。