我有下表:

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


我如何从中获得成对的监护权?如何在子查询中编写它?

有人可以帮我吗

最佳答案

这样的事情应该可以工作,但是请注意,我今天没有MySQL访问权限,因此未经测试:

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

关于mysql - 获取同一产品的ID的串联列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18832209/

10-13 23:30