Mysql 使用GROUP_CONCAT时显示连接结果为空的所有行

Mysql 使用GROUP_CONCAT时显示连接结果为空的所有行,mysql,database,Mysql,Database,我正在一个大的用户表上运行下面的查询 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的关系表 我的结果是

我正在一个大的用户表上运行下面的查询

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,但他们没有显示。我如何才能让查询列出所有用户,即使他们没有组而不是只有第一个组

不要按要加入的表中的列分组。当不匹配时,该列将为空,所有这些行将分组在一起。而是使用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