2013-09-16 35 views
0

我有以下表格:獲取的ID的拼接列表爲同樣的產品

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 

如何

我最終的輸出應如下concantenated名單我從這裏得到custid的對?如何在子查詢中編寫它?

有人可以幫助我。

+2

搜索GROUP_CONCAT – Mihai

+1

我很好奇,當你有一個MySQL標籤與Oracle語法如何返回有效數據在這個問題上。你真的在用什麼數據庫?另外,你的示例查詢在語法上是不正確的,因爲'prodid'沒有被定義。 –

+1

什麼是'LISTAGG'?這不是MySQL的功能。 –

回答

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 
+0

它工作!非常感謝! :) –

相關問題