日期:2014-05-16  浏览次数:20418 次

SQL join的问题
现在是这种情况   通过查询得到两个结果集A、B  其中A、B中都有companyid和productid字段  
现在我要实现A和B通过这两个字段联合  也就是join  如果A中有的B中不存在,或者B中有的在A中不存在 都要取出来,不存在的就用空值。现在不知道该怎么合并,求大牛指导
------解决方案--------------------
select a.*,b.*
from a fulljoin b on a.companyid=b.companyid and a.productid=b.productid
------解决方案--------------------

select * from A left join B on A.companyid=B.companyid and A.productid=B.productid
union 
select * from B left join A on A.companyid=B.companyid and A.productid=B.productid

------解决方案--------------------

select a.companyid as a_companyid, a.productid as a_productid, b.companyid as b_companyid, b.productid as b_productid
from a left join b on a.companyid = b.companyid and a.productid = b.productid
where b.companyid is null
union all
select a.companyid as a_companyid, a.productid as a_productid, b.companyid as b_companyid, b.productid as b_productid
from b left join a on a.companyid = b.companyid and a.productid = b.productid
where a.companyid is null