我有下表:
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/