0

我有下表:

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 的?如何在子查询中编写它?

有人可以帮助我吗?

4

1 回答 1

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
于 2013-09-16T16:15:30.370 回答