我需要创建一个查询,创建3个来自2个表的列,这些表具有以下关系:
表1具有与具有列ID2
的表2相关的列ID在表1中,有一个名为user的列在表2中有一个名为names
的列可以有1个唯一身份用户,但可以有许多与该用户相关联的名称。
如果我执行以下操作,我将获得所有数据但是用户列会为其关联的每个名称重复自己。我想要的是用于显示唯一,但名称列显示所有与用户列关联但由逗号分隔的名称,如下所示:
选择用户,TABLE1中的名称左连接TABLE1.id = TABLE2.id
上的TABLE2这将显示每次为该用户显示名称时重复的用户。我想要的是这样:
用户 - 姓名
cyrex - pedrox,rambo,zelda
homeboy - carmen,carlos,tom,sandra
杰里 - 赛因菲尔德,克里斯汀
忍者 - soloboy
等...
答案 0 :(得分:13)
您正在寻找的是GROUP_CONCAT运营商。
select user, GROUP_CONCAT(names SEPARATOR ',')
from TABLE1 left join TABLE2 on TABLE1.id = TABLE2.id
group by user