我需要创建一个查询来创建来自 2 个表的 3 列,这些表具有以下关系:
表 1 的列 ID 与表 2 的列 ID2 相关
在表 1 中有一个名为 user 的列在表 2 中有一个名为 names 的列
可以有 1 个唯一用户,但可以有多个名称与该用户关联。
如果我执行以下操作,我将获得所有数据,但用户列会针对它关联的每个名称重复自身。我想要的是 use 看起来是唯一的,但名称列与与用户列关联的所有名称一起显示,但用逗号分隔,如下所示:
选择用户,来自 TABLE1 的名称在 TABLE1.id = TABLE2.id 上加入 TABLE2
这将在每次出现该用户的名称时显示重复的用户。我想要的是这样显示:
用户 - 姓名
cyrex - 佩德洛克斯、兰博、塞尔达
男朋友 - carmen, carlos, tom, sandra
杰瑞 - 宋飞正传,克里斯汀
忍者 - 独奏男孩
等....
最佳答案
您正在寻找的是 GROUP_CONCAT运营商。
select user, GROUP_CONCAT(names SEPARATOR ',')
from TABLE1 left join TABLE2 on TABLE1.id = TABLE2.id
group by user
关于mysql在一列中加入多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4609753/