如何合并两个sql结果

时间:2015-05-05 17:43:14

标签: mysql sql-server

我不是SQL的专家。我只是个初学者。

我的表格结构:

合作伙伴表:objectid,合作伙伴[合作伙伴ID],partnerfunc

客户:customerid,客户类型

给定是对象id。

查询

 select partner from partners where object = '352846';

它返回6个paartner信息。

  1
  2
  3
  4
  5
  6

 select partnerfunction from partners where object = '35284624';

 A
 B
 C
 Z
 X
 Y

返回相应的合作伙伴功能。

我需要在给定数据的帮助下从客户表中获取客户类型。

select customertype from customer where customerid in (select partner from
partners where iobject = '352846');

它只返回4个信息。

Owner
Owner
Vendor
Vendor [Remaining two values may be em]
我很困惑。我想打印相应的合作伙伴和合作伙伴功能,以便我可以检查结果。

首先我将上述查询更改为如下

 select customertype from customer, iobj_partners where customerid in 
 (select partner from iobj_partners where iobject = '352846') and iobject 
 = '352846';

它返回24个结果

 owner [12 rows]
 vendor [12 rows]

我应该使用不同的吗?为什么它会返回24个值?我真的很困惑我写的查询。我完全误解了这个问题。

我尝试将其与合作伙伴和合作伙伴功能一起打印,

 select customertype, partner, partnerfunction  
 from customer, partners
 where customerid in (select partner from partners where iobject =  
 '352846')
 and iobject  = '352846'
 group by customertype, partner, partnerfunction;

返回12行。 6个供应商,6个所有者。

但我知道它会返回如下

 partner     customertype     partnerfunction
 1           owner            A
 2                            B
 3           owner            C
 4                            X
 5           vendor           Y
 6                            Z

但它的回报超过我想要的回报?请清除我的基本疑问

1 个答案:

答案 0 :(得分:0)

听起来你需要使用join,可能是outer join来返回空客户:

select p.partner, c.customertype, p.partnerfunction
from partner p
    left join customer c on p.partner = c.customerid
where p.object = 352846

这是一个非常好的参考: