sql:为什么在使用'GROUP CONCAT'+'GROUP BY'时查询重复值?

Ada*_*dam 2 sql group-by left-join group-concat

查询:

SELECT MemberId, a.MemberName, GROUP_CONCAT(FruitName) FROM a LEFT JOIN b ON 
a.MemberName = b.MemberName GROUP BY a.MemberName
Run Code Online (Sandbox Code Playgroud)

表a

MemberID          MemberName              
--------------    ----------  
1                  Al                   
1                  Al       
3                  A2       
Run Code Online (Sandbox Code Playgroud)

表b

MemberName             FruitName
---------------        --------------
Al                     Apple
Al                     Mango
A2                     Cherry
Run Code Online (Sandbox Code Playgroud)

上述查询产生的结果:

MemberId    MemberName  GROUP_CONCAT(FruitName)
3           A2          Cherry
1           A1          Apple,Apple,Mango,Mango
Run Code Online (Sandbox Code Playgroud)

我使用的实际表格各有10列,所以只将一切存储在一个表中不是一种解决方法.这就是说,我怎么能更改查询只返回'Apple,Mango'MemberNamé?

sou*_*rge 8

将关键字DISTINCT添加到分组列:

GROUP_CONCAT(DISTINCT FruitName)
Run Code Online (Sandbox Code Playgroud)


Sta*_* R. 5

尝试

GROUP_CONCAT(Distinct FruitName)
Run Code Online (Sandbox Code Playgroud)