oracle的一个条件语句where b.id = c.id and s.car(+) = c.id  请问这个后面的(+)是什么意思呢,我在网上查了,好像是left join,right join的问题,但是看不懂,希望高手指点一下。越详细越好。谢了。分数会再结贴是准时给的。

解决方案 »

  1.   

    s 和c 左连接,  c 和b 内 连接
    还是google 吧
      

  2.   

    http://www.w3school.com.cn/sql/sql_join_left.asp楼主 自己学吧。
      

  3.   

    s.car(+) = c.id ,就是一种外连接,至于左还是右,不用记。这么记:(+)在那边,数据是以另一边为准。如上,c。id = 1,2,3 ;s。car =1,4 ;   s.car(+) = c.id ,就会列出1,2,3
      

  4.   

    假设有两个表,表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.
      

  5.   

    s.car(+) = c.id  左链接
    s.car = c.id(+)  右链接
      

  6.   

    假设存在两个表
    表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。加上+表示外连接,允许+所在的方向的表不存在记录。