假设我有一个名为tblUsers的表,其中包含用户信息,另一个名为tblBadgesEarned的表与tblUsers具有nm关系,其中包含用户获得的每个徽章的条目。
如果我从tblUsers获取用户信息,我希望结果包含一个名为" BadgesEarned"例如,这是所有用户从tblBadgedEarned获得的所有徽章的数组。
是否可以在单个查询中执行此操作,或者我是否必须将其拆分并在之后将字段添加到数组结果中?
答案 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;