5

我需要创建一个查询来创建来自 2 个具有以下关系的表的 3 个列:

表 1 的列 ID 与表 2 的列 ID2 相关

在表 1 中有一个名为 user 的列 在表 2 中有一个名为 names 的列

可以有 1 个唯一用户,但可以有许多与该用户关联的名称。

如果我执行以下操作,我将获得所有数据,但用户列会针对与其关联的每个名称重复。我想要的是使用看起来唯一,但名称列显示与用户列关联的所有名称,但用逗号分隔,如下所示:

select user,names from TABLE1 left join TABLE2 on TABLE1.id = TABLE2.id

这将显示每次出现该用户的名称时重复的用户。我想要的是看起来像这样:

用户 - 名称
cyrex - pedrox、rambo、zelda
homeboy - carmen、carlos、tom、sandra
jerry - seinfeld、christine
ninja - soloboy

ETC....

4

1 回答 1

15

您正在寻找的是GROUP_CONCAT运算符。

select user, GROUP_CONCAT(names SEPARATOR ',')
from TABLE1 left join TABLE2 on TABLE1.id = TABLE2.id
group by user
于 2011-01-05T22:23:57.183 回答