将一个字段中包含多个值的表与另一表连接

0 mysql sql join left-join

我正在加入一个在一个字段中有多个值的表。我没有从查询中得到我想要的结果。我想使用 groupid 连接表,并且想要生成名称和组名称的结果。

tb人

人物 姓名 组ID
P001 Α 1,2,3
P002 贝塔 2,3
P003 查理 1,3

tb集团

组ID 团队名字
1 投资者
2 经销商
3 零售商

我想和他们一起做一张桌子

姓名 团队名字
Α 投资者、分销商、零售商
贝塔 分销商、零售商
查理 投资者、零售商
SELECT p.name, g.group_name
FROM tbPerson p 
LEFT JOIN tbGroup g ON p.groupid = g.groupid
Run Code Online (Sandbox Code Playgroud)

它只为每个人提供 1 个 group_name。

小智 5

SELECT tbPerson.name, 
       GROUP_CONCAT(tbGroup.group_name SEPARATOR ', ') AS group_name
FROM tbPerson
JOIN tbGroup ON FIND_IN_SET(tbGroup.groupid, tbPerson.groupid)
GROUP BY tbPerson.personid
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述