MySQL中空连接上的组\u concat

MySQL中空连接上的组\u concat,mysql,join,grouping,Mysql,Join,Grouping,我有以下问题: 我有两张桌子:(简体) 但是,这适用于具有某些已定义角色的用户。不返回没有角色的用户。当用户没有任何角色时,如何修改语句以在“角色”列中返回空字符串的用户 说明:我将SQL数据直接传递到网格,然后网格将自己格式化,对我来说,创建缓慢而复杂的视图比在代码中格式化更容易 我正在使用MySQL我已经尝试了你的SQL并且没有pb来运行它,所有的行都会返回,即使没有角色的用户也是如此,这是唯一一个你在角色列中有null的东西,以避免在字段为null时使用合并函数得到一个空字符串 SELEC

我有以下问题: 我有两张桌子:(简体)

但是,这适用于具有某些已定义角色的用户。不返回没有角色的用户。当用户没有任何角色时,如何修改语句以在“角色”列中返回空字符串的用户

说明:我将SQL数据直接传递到网格,然后网格将自己格式化,对我来说,创建缓慢而复杂的视图比在代码中格式化更容易


我正在使用MySQL

我已经尝试了你的
SQL
并且没有pb来运行它,所有的行都会返回,即使没有角色的用户也是如此,这是唯一一个你在角色列中有null的东西,以避免在字段为null时使用
合并
函数得到一个空字符串

SELECT u.*, group_concat(COALESCE(r.Name, "") separator ',') as Roles FROM 
  User u
  LEFT JOIN User_Role ur ON ur.User=u.ID
  LEFT JOIN Role r ON ur.Role=r.ID
 GROUP BY u.ID;

现在我看起来像个十足的白痴:-)我使用的第二个连接是内部连接,但至少我写对了。谢谢你的联合,通过。
+-------------+   
| User_Role   |   
+-------------+
| User<FK>    |
| Role<FK>    |
+-------------+
SELECT u.*, group_concat(r.Name separator ',') as Roles FROM 
  User u
  LEFT JOIN User_Role ur ON ur.User=u.ID
  LEFT JOIN Role r ON ur.Role=r.ID
 GROUP BY u.ID;
SELECT u.*, group_concat(COALESCE(r.Name, "") separator ',') as Roles FROM 
  User u
  LEFT JOIN User_Role ur ON ur.User=u.ID
  LEFT JOIN Role r ON ur.Role=r.ID
 GROUP BY u.ID;