加号在前和在后分别是什么意思?百度上怎么都搜不出来,请高手不吝赐教。
last_data.item_id(+) = item_data.item_idlast_data.item_id = item_data.item_id(+)

解决方案 »

  1.   

    这是oracle 9i之前的语法,相当于标准sql 左外联接,右联接
      

  2.   

      last_data.item_id = item_data.item_id(+)  等同于, left outer join 
      last_data.item_id(+) = item_data.item_id  等同于, right outer join 
      

  3.   

    相当于标准SQL 的左联和右联。
    加号在前表示左联,在后表示右连接
    last_data表中的ID 全部查出来,item_data不一定全部查出来。只 查询匹配的,不匹配的用空之代替
      

  4.   

       
      create   table   dali.test1(a   int,b   int);   
      create   table   dali.test2(a   int,b   int);   
        
      insert   into   dali.test1   values(1,456);   
      insert   into   dali.test1   values(2,427);   
      insert   into   dali.test2   values(1,45456);   
      insert   into   dali.test2   values(3,45656);   
        
      ---内连接   
      select   *   from   dali.test1   a,   dali.test2   b   where   a.a=b.a;   
        
      ---左连接   
      select   *   from   dali.test1   a,   dali.test2   b   where   a.a=b.a(+);   
        
      ---右连接   
      select   *   from   dali.test1   a,   dali.test2   b   where   a.a(+)=b.a;   
        
      ---完全连接   
      select   *   from   dali.test1   a,   dali.test2   b   where   a.a=b.a(+)   
      union   
      select   *   from   dali.test1   a,   dali.test2   b   where   a.a(+)=b.a;   
        
      ---迪卡尔   
      select   *   from   dali.test1,   dali.test2;
    '==================================================================
    9i和sqlserver一样   left   join,right   join,full   join
      

  5.   

    last_data.item_id(+) = item_data.item_id 
    表示右联,也就是查出item_data、last_data两个表都有的ID和item_data有但last_data没有的ID
    last_data.item_id = item_data.item_id(+)
    表示左联,也就是查出item_data、last_data两个表都有的ID和item_data没有但last_data有的ID
    区别就在后面那一部分