获取同一产品的id的连接列表

时间:2013-09-16 15:49:25

标签: mysql

我有下表:

create table Customer (
    custid integer not null,
    prodid integer not null,
    primary key(custid,prodid)
);

此表中的值如下:

Custid |  Prodid

1         10    
1         11    
2         10    
2         11    
3         10    
3         11    
4         11

我希望得到所有那些购买相同产品的客户。

我的最终输出应该是一致的列表如下:

Custid

1,2    
2,3    
1,3    
1,4    
2,4    
3,4

我写了一个查询如下:

SELECT custid, group_concat(prodid,',')
FROM
    (SELECT UNIQUE custid FROM Customer)
    group by custid;

但是这给了我:

1  10,11    
2  10,11    
3  10,11    
4  11

如何从中获取成对的custid?如何在子查询中编写它?

有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

这样的东西应该可行,但请注意我今天没有MySQL访问权限,因此未经测试:

SELECT DISTINCT CONCAT(a.custid, ',', b.custid)
FROM Customer a
JOIN Customer b ON a.prodid = b.prodid
WHERE a.custid < b.custid