假设有两个表,表A有两条记录1和2,表B有两条记录2和3, 那么执行 select * from a,b where a.id = b.id; 得到的结果集是在表A与表B同时存在的记录2.执行 select * from a,b where a.id = b.id(+); 得到的结果集就以表A为准,就算在表B中不存在关联记录也出现在结果集中,这条SQL得到的结果集是1和2.执行 select * from a,b where a.id(+) = b.id; 得到的结果集与上一条SQL相反,是以表B的记录为准,这条SQL得到的结果集是2和3.
s.car(+) = c.id 左链接 s.car = c.id(+) 右链接
假设存在两个表 表A 1 2 表B 2 3select a.id,b.id from a,b where a.id = b.id; 结果是只有一条记录2,此种查询是在A与B同时存在的记录。select a.id,b.id from a,b where a.id = b.id(+); 结果是有两条记录1和2,其中2这条记录中的表B字段都是NULL。加上+表示外连接,允许+所在的方向的表不存在记录。
还是google 吧
那么执行
select * from a,b where a.id = b.id;
得到的结果集是在表A与表B同时存在的记录2.执行
select * from a,b where a.id = b.id(+);
得到的结果集就以表A为准,就算在表B中不存在关联记录也出现在结果集中,这条SQL得到的结果集是1和2.执行
select * from a,b where a.id(+) = b.id;
得到的结果集与上一条SQL相反,是以表B的记录为准,这条SQL得到的结果集是2和3.
s.car = c.id(+) 右链接
表A
1
2
表B
2
3select a.id,b.id from a,b where a.id = b.id;
结果是只有一条记录2,此种查询是在A与B同时存在的记录。select a.id,b.id from a,b where a.id = b.id(+);
结果是有两条记录1和2,其中2这条记录中的表B字段都是NULL。加上+表示外连接,允许+所在的方向的表不存在记录。