select * from bkht.tab_scan a full join bkht.tab_bill b on a.BILL_CODE=b.bill_code where a.BILL_CODE='10001';帮我转换成子查询或其它方式查询````要求不用join 谢谢```为什么不用join?答案是: 我是有苦说不出哈```能帮我解决的``我会非常感谢哈!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【studyfreshbirdhard】截止到2008-07-15 15:07:22的历史汇总数据(不包括此帖):
    发帖的总数量:3                        发帖的总分数:90                       每贴平均分数:30                       
    回帖的总数量:10                       得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:3                        结贴的总分数:90                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

       select * 
       from bkht.tab_scan a , bkht.tab_bill b
       where a.BILL_CODE='10001'and a.BILL_CODE=b.bill_code ;full join不好搞
      

  3.   

    我不太清楚你为什么一定要用full join ,我提出几种假设。不过从你写的SQL上来看,是B表才会缺失数据。
    第一。如果你只可能是B中会缺少记录,那么使用
     select * 
      from bkht.tab_scan a , bkht.tab_bill b 
      where a.BILL_CODE='10001'and a.BILL_CODE=b.bill_code(+) ; 
      select * 
      from bkht.tab_scan a , bkht.tab_bill b 
      where a.BILL_CODE='10001' and (b.bill_code='10001' or b.bill_code is null); 
      

  4.   

    我同意laorer的写法,因为lz的sql后面有个where过滤
      

  5.   

    就使用右连接
    select * 
      from bkht.tab_scan a , bkht.tab_bill b 
      where a.BILL_CODE='10001'and a.BILL_CODE=b.bill_code(+) ; 
      

  6.   


    select * from bkht.tab_scan a where exists (select * from bkht.tab_bill b where a.bill_code=b.bill_code) and a.bill_code='10001'
      

  7.   


    晕,laorer那个是内连接,缺失了很多数据
      

  8.   

    select * from bkht.tab_scan a 
    where exists 
    (select * from bkht.tab_bill b where a.bill_code=b.bill_code) 
    and a.bill_code='10001'
      

  9.   

    select a.* from bkht.tab_scan a  where a.bill_code='10001' union select a.* from bkht.tab_scan a,bkht.tab_bill b where a.bill_code = b.bill_code因为union暗含了distinct,所以重复数据会帮你剔除掉,而union all会保留重复数据
      

  10.   

    虽然是full join,但有where a.BILL_CODE='10001'条件,上面写的都不错,如果没有where条件,上面写的就另当别论了。
      

  11.   

    二楼写的是inner join,得到的只是full join的一个子集。错。