所以,我一直在努力做以下外连接:

SELECT * FROM table1
LEFT OUTER JOIN table2
ON table1.a = table2.a
AND table1.b = table2.b
LEFT OUTER JOIN table3
ON table1.a  =  table3.a
AND table1.b = table3.c

我已经测试过,可以毫无问题地完成它 . 但是,我正在使用的软件使用旧语法进行左连接 . 所以我这样写了:

SELECT * FROM table1, table2, table3
WHERE table1.a = table2.a  (+)
AND table1.b   = table2.b (+)
AND table1.c = table3.a (+) 
AND table2.c =  table3.b (+)

显然,我得到了ORA-01417:一个表可能外部连接到最多一个其他表错误 . 有什么方法可以解决这个问题吗?

table1.c不存在于任何table2列中,因此我不得不使用table1.c = table3.b子句 .