2009-07-20 33 views
2

查詢:sql:爲什麼查詢在使用'GROUP CONCAT'+'GROUP BY'時重複值?

SELECT MemberId, a.MemberName, GROUP_CONCAT(FruitName) FROM a LEFT JOIN b ON 
a.MemberName = b.MemberName GROUP BY a.MemberName 

表一個

MemberID   MemberName    
-------------- ---------- 
1     Al     
1     Al  
3     A2  

表B

MemberName    FruitName 
---------------  -------------- 
Al      Apple 
Al      Mango 
A2      Cherry 

所得從上述查詢輸出:

MemberId MemberName GROUP_CONCAT(FruitName) 
3   A2   Cherry 
1   A1   Apple,Apple,Mango,Mango 

實際表我正在使用每欄10列,因此只需將所有內容存儲在一張表中不是一種解決方法。也就是說,如何將查詢更改爲只返回'Apple,Mango'MemberNam e?

回答

3
SELECT MemberId, a.MemberName, GROUP_CONCAT(DISTINCT FruitName) 
FROM a 
LEFT JOIN 
     b 
ON  a.MemberName = b.MemberName 
GROUP BY 
     a.MemberName 
5

嘗試

GROUP_CONCAT(Distinct FruitName)