用Left Join试试select pub_vendor.* ,pub_base_no.base_name,org_enterprise.com_name 
from pub_vendor A 
Left Join org_enterprise B On A.inner_com_id=B.com_id
Left Join pub_base_no C On C.base_id = A.trades_id 
where C.base_type = 'trades_id' and
and A.vendor_id =?

解决方案 »

  1.   

    pub_vendor left join pub_base_no on ...不想显示为null的用isnull函数处理
      

  2.   

    谢谢  paoluo(一天到晚游泳的鱼)   你给的答案我试了下 正确的我后来用OUT JOIN也可以实现的 ,写的复杂了点select c.* ,d.com_name
    from 
    ( select a.* ,b.base_name 
    from  pub_vendor as a FULL OUTER JOIN pub_base_no as b 
    on a.trades_id = b.base_id   and b.base_type = 'trades_id' where  a.vendor_id = ? ) as c LEFT OUTER JOIN org_enterprise as d 
    on d.com_id= c.inner_com_id