我有两个表作为user和userGroup相关,这样每个用户都可以分配给一个或多个userGroup。当包含userGroup id的逗号分隔值时,user表包含外键作为group_id。 我想在单个查询中获取用户详细信息和与其相关的逗号分隔的group_name。我有什么方法可以在SQL中实现这一点吗? 用户表的字段是:(id,uname,group_id) userGroup:(id,group_name)
我想要的是在单个SQL查询中获取uname,group_name,user.id,group.id。
我尝试了以下查询,但它给了我错误
SELECT t1.uname, group_concat(t.group_name) FROM user t1
LEFT JOIN user_group t2
ON t1.group_id = t2.id
WHERE t2.id IN t1.group_id
答案 0 :(得分:1)
试试这个:
SELECT t1.uname, GROUP_CONCAT(t.group_name) AS group_name
FROM user t1
LEFT JOIN user_group t2 ON FIND_IN_SET(t2.id, t1.group_id)
GROUP BY t1.id;