外连接
select a.devid,a.dev_name,a.LEVEL_ORDER, a.feederid,a.src_id, b.device_view from net_df_BRANCH  a , G_CLASSDEFS b where   
a.src_type = b.class_id(+) and a.parentid = '1000447703'  现在我想对 G_CLASSDEFS  这张表先做一个筛选tc_id=2  再外连接select a.devid,a.dev_name,a.LEVEL_ORDER, a.feederid,a.src_id, b.device_view from net_df_BRANCH  a , G_CLASSDEFS b where   
a.src_type = b.class_id(+) and a.parentid = '1000447703'  and b.tc_id=2 可是结果不对了。因为表net_df_BRANCH  里面src_type 有可能为null ,,加上b.tc_id=2  后,src_type为NULL的记录都没有了,,请问应该如何写SQL

解决方案 »

  1.   

    select a.devid,a.dev_name,a.LEVEL_ORDER, a.feederid,a.src_id, b.device_view from net_df_BRANCH a , G_CLASSDEFS b where   
    a.src_type = b.class_id(+) and a.parentid = '1000447703' and b.tc_id=2(+) 
      

  2.   


    select a.devid,a.dev_name,a.LEVEL_ORDER, a.feederid,a.src_id, b.device_view from net_df_BRANCH a , 
    (select * from G_CLASSDEFS where tc_id=2  )b where   
    a.src_type = b.class_id(+) and a.parentid = '1000447703' 放到里面去 查询过滤完了 在连接
      

  3.   

    select a.devid,a.dev_name,a.LEVEL_ORDER, a.feederid,a.src_id, b.device_view from net_df_BRANCH a , G_CLASSDEFS b where   
    a.src_type = b.class_id(+) and a.parentid = '1000447703' and b.tc_id(+)=2;
    上面加错位置了