gpt4 book ai didi

mysql - 使用 GROUP_CONCAT 时显示具有空联接结果的所有行

转载 作者:行者123 更新时间:2023-11-29 10:51:36 24 4
gpt4 key购买 nike

我正在一个大型用户表上运行以下查询。

SELECT `Users`.`Username`, GROUP_CONCAT(`GroupAccess`.`UserGroup`) AS 'GroupID' 
FROM `Users`
LEFT JOIN `GroupAccess` ON `GroupAccess`.`User` = `Users`.`ID`
GROUP BY `GroupAccess`.`User`

GroupAccess 只是一个包含用户 ID 和所属组 ID 的关系表。

我的结果:

Username....GroupID
Test1.............NULL
Test81.............1,13,12
Test82............1,14
Test83............2
Test84............2

但是,还有许多其他没有组的用户(Test2-80)但没有显示。如何获取列出所有用户的查询,即使他们没有组而不是只有第一个组?

最佳答案

不要按您LEFT JOIN使用的表中的列进行分组。如果没有匹配项,该列将为 NULL,并且所有这些行将被分组在一起。相反,请使用GROUP BY Users.ID

另一种解决方案是在子查询中进行分组。

SELECT u.Username, g.GroupIDs
FROM Users AS u
LEFT JOIN (
SELECT User, GROUP_CONCAT(UserGroup) AS GroupIDs
FROM GroupAccess
GROUP BY User) AS g
ON u.ID = g.User

关于mysql - 使用 GROUP_CONCAT 时显示具有空联接结果的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43642958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com