mysql在一列中加入多个值

标签 mysql sql group-concat

我需要创建一个查询来创建来自 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/

相关文章:

MySQL group_concat SEPARATOR char 或 ascii

mysql - 向 MySQL 表添加索引后,表未打开

sql - 如何在左连接中获取另一个表的计数

mysql - 在mysql中加入数据透视表

两行之间的MySQL日期差异

java - H2 - 为什么 GROUP_CONCAT 拒绝具有 NULL 值的行?

mysql - 性能缓慢的 MySql 查询,替代方案/建议?

mysql - 在SSDT数据库中插入静态数据

mysql - 在重叠集上执行并发级联更新查询时是否需要显式行锁?

php - 使用php对数据库表中的特定行进行计算