左右外连接的一些小结

我们可以用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一起使用。

请使用浏览器的分享功能分享到微信等