代码如下:
  SELECT  *
  FROM SFISM4.R_MO_BASE_T R105, SFIS1.C_ROUTE_NAME_T CRN, SFIS1.C_CUSTOMER_T CUS 
  where CRN.ROUTE_CODE(+) = R105.ROUTE_CODE and CUS.CUST_CODE(+) = R105.CUST_CODE 
  and R105.MO_NUMBER = '091012'请问一下这其中的在字段名后加(+)是什么意思,实际上在ROUTE_NAME_T和C_CUSTOMER_T表中的字段名是没有(+)的,求解释

解决方案 »

  1.   

    left join,right join的简写而已
      

  2.   

    SELECT *
      FROM SFISM4.R_MO_BASE_T R105, SFIS1.C_ROUTE_NAME_T CRN, SFIS1.C_CUSTOMER_T CUS  
      where CRN.ROUTE_CODE(+) = R105.ROUTE_CODE and CUS.CUST_CODE(+) = R105.CUST_CODE  
      and R105.MO_NUMBER = '091012'想知道加号是什么意思,你只要把这条命令中的加号去掉,然后再比较两次返回的结果有何异常,就心里知道了!没有加号的时候,返回的结果要少一些记录,仔细看看吧~每次运行一下就统计一下记录条数,再仔细找找
      

  3.   

    oracle里面的左右连接 看个人习惯了 效果差不多
      

  4.   

    left join,right join的简写而已
      

  5.   

    SELECT
      A.id,  B.IDD
    FROM
      A, B
    WHERE
       A.id(+)=B.IDD
    等价于
    SELECT
      A.id,  B.IDD
    FROM
      A   RIGHT OUTER  JOIN  B  ON ( A.id=B.IDD)SQL> select * from A;        ID VAL
    ---------- ----------
             1 A1
             2 A2SQL> select * from B;       IDD VAL
    ---------- ----------
             1 B1
             3 B3SQL> SELECT
      2    A.id,  B.IDD
      3  FROM
      4    A, B
      5  WHERE
      6     A.id(+)=B.IDD;        ID        IDD
    ---------- ----------
             1          1
                        3SQL> SELECT
      2    A.id,  B.IDD
      3  FROM
      4    A   RIGHT OUTER  JOIN  B  ON ( A.id=B.IDD);        ID        IDD
    ---------- ----------
             1          1
                        3意思是 两表关联的时候, 
    B 表的数据, 全部检索出来。 
    A表的数据,则是在B表有相对应的数据的情况下,才检索出来。