WHERE A.ID(+)=B.ID(+) 在oracle是不允许这么用的. 这也不是做笛卡儿乘积. 笛卡儿乘积--->select * from tablea ,tableb ; inner join on id=id : where id=id left join on id=id : where id=id(+) right join on id=id : where id(+)=id
完全外联接: select * from a full outer join b on a.id=b.id
笛卡尔积: select * from A cross join B where .... 左外部连接 select * from A left outer join B on A.id=B.id 相等于: select * from A,B where A.id=B.id(+) 右外部连接 select * from A right outer join B on A.id=B.id 相等于: select * from A,B where A.id(+)=B.id 完全外部连接 select * from A full outer join B on A.id=B.id
and …
类似
笛卡儿乘积--->select * from tablea ,tableb ;
inner join on id=id : where id=id
left join on id=id : where id=id(+)
right join on id=id : where id(+)=id
select * from a full outer join b on a.id=b.id
select * from A cross join B where ....
左外部连接
select * from A left outer join B on A.id=B.id
相等于: select * from A,B where A.id=B.id(+)
右外部连接
select * from A right outer join B on A.id=B.id
相等于: select * from A,B where A.id(+)=B.id
完全外部连接
select * from A full outer join B on A.id=B.id