两种语法通常都可以正常工作,但是如果您尝试添加where条件,您将发现使用第二种语法更容易理解哪个是连接条件,哪个是where子句。
1)
SELECT a.name,
a.empno,
b.loc
FROM tab a,
tab b
WHERE a.deptno = b.deptno(+)
AND a.empno = 190;
@H_419_6@
2)
SELECT a.name,
a.empno,
b.loc
FROM tab a,
LEFT OUTER JOIN tab b
ON a.deptno = b.deptno
WHERE a.empno = 190;
@H_419_6@
另外,识别外部联接也很容易,并且不要忘记包含(+)。总的来说,您可以说这只是一个品味问题,但事实是第二种语法更具可读性,并且不易出错。