语句 1  
  SELECT *
  FROM TEMP_2 A, T_PACKAGE B
  WHERE B.PACKID = '2000001610'
  AND A.MSISDN = B.msisdn(+);
语句 2  SELECT *
  FROM TEMP_2 A, T_SUBS_PACKAGE B
  WHERE A.MSISDN = B.msisdn(+);如果使用语句1,冒似左连接就无效果了,就是说,加不加 加号是一样的效果。去掉B.PACKID = '2000001610' 这个语句,则查询出来的数据条数与 TEMP_2 A相同
这种左右连接有这样的讲究么。不能加别的条件?

解决方案 »

  1.   

    这是Oracle的吧?上面的是先对B表中的数据进行过滤,然后再进行连接。下面一个问题看看“左连接”的定义就知道是怎么回事了。
      

  2.   

    感谢,
    可即使对b表进行过滤了,那结果还应该是以a表的条数为基准啊。也就是不管b表的数据,最后的结果的条数都应该是a表的条数吧。