我们可以用select ....from table1 [left|right|inner|full] join table2 on table1.col1=table2.col2的方式来实行各种外连接。
也可以用(+)来实现外连接。在用(+)来实现外连接时,有几点是需要注意的:
[@more@]1.(+)操作符执行出现在where子句中,并且不能与outer join语法同时使用。
2.当使用(+)操作符执行外连接时,如果where子句中包含多个条件,则必须在所有条件中都要包含(+)操作符。
如:
SELECT a.dname, b.ename
FROM dept a, emp b
WHERE a.deptno = b.deptno(+) AND b.deptno(+) = 10
如果只出现在a.deptno = b.deptno(+) 而不出现在b.deptno(+) = 10,则取不到正确的结果,而只会显示内连接的结果。
3.哪边少就应该把(+)操作符号放在哪边。如上例当中,dept表的部门信息有4个,而emp表中的部门有3个,如果想显示多的部门,就应该把(+)放在emp表那里。
4.(+)操作符只适用于列,而不能用在表达式上。
5.(+)不能与or和in一起使用。