sql:为什么使用“GROUP CONCAT”时查询重复值 + “分组依据”?
查询:
SELECT MemberId, a.MemberName, GROUP_CONCAT(FruitName) FROM a LEFT JOIN b ON
a.MemberName = b.MemberName GROUP BY a.MemberName
表 a
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 列,因此仅将所有内容存储在一个表中并不是一种解决方法。 也就是说,如何将查询更改为仅返回 MemberNam
e 的 'Apple,Mango'
?
The Query:
SELECT MemberId, a.MemberName, GROUP_CONCAT(FruitName) FROM a LEFT JOIN b ON
a.MemberName = b.MemberName GROUP BY a.MemberName
Table a
MemberID MemberName
-------------- ----------
1 Al
1 Al
3 A2
Table b
MemberName FruitName
--------------- --------------
Al Apple
Al Mango
A2 Cherry
Resulting Output from above query:
MemberId MemberName GROUP_CONCAT(FruitName)
3 A2 Cherry
1 A1 Apple,Apple,Mango,Mango
The actual tables I am using have 10 columns apiece so just storing everything in one table is not a workaround. That said, how can I change the query to only return 'Apple,Mango'
for MemberNam
e?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
添加关键字 DISTINCT 到分组列:
Add the keyword DISTINCT to the grouped column:
尝试
try