根据另一个表的结果向查询添加行

时间:2016-11-23 16:40:17

标签: mysql sql

假设我有一个名为tblUsers的表,其中包含用户信息,另一个名为tblBadgesEarned的表与tblUsers具有nm关系,其中包含用户获得的每个徽章的条目。

如果我从tblUsers获取用户信息,我希望结果包含一个名为" BadgesEarned"例如,这是所有用户从tblBadgedEarned获得的所有徽章的数组。

是否可以在单个查询中执行此操作,或者我是否必须将其拆分并在之后将字段添加到数组结果中?

1 个答案:

答案 0 :(得分:0)

您可以使用GROUP_CONCAT()完成此类操作。以下是基于您提供的最小架构信息的示例查询:

select tblUsers.username, 
  group_concat(distinct tblBadgesEarned.badge_name order by tblBadgesEarned.badge_name)
from tblUsers
  left outer join tblBadgesEarned on tblBadgesEarned.user_id = tblUsers.id 
group by tblUsers.username;