Mysql 我想在一列中连接单元格

Mysql 我想在一列中连接单元格,mysql,sql,Mysql,Sql,我想根据id和它们所属的员工将单元格连接到一列中 我的桌子是: evenement: id | title 1 | hello 2 | hi 3 | bye evenementontvanger: id | idEvent | idWerknemer 1 | 1 | 2 2 | 1 | 20 3 | 2 | 3 4 | 2 | 18 5

我想根据id和它们所属的员工将单元格连接到一列中

我的桌子是:

evenement:

id  |  title
1   |  hello
2   |  hi
3   |  bye

evenementontvanger:

id  |  idEvent  |  idWerknemer
1   |     1     |      2
2   |     1     |      20
3   |     2     |      3
4   |     2     |      18
5   |     3     |      2
6   |     3     |      20
7   |     3     |      26


Werknemer:
idWerknemer   |   Initialen
2             |      JD
3             |      HA
18            |      AD
20            |      RC
26            |      AJ

I would like to have an output like this for each different idEvent:
id  |  title   |   idEvent   |   idWerknemer   |   idWerknemer   |   Initialen  |   Initials
1   |  hello   |   1         |   2             |   2             |   JD         |   JD,RC
1   |  hello   |   1         |   20            |   20            |   RC         |   JD,RC
我曾尝试使用CONCAT_组,但这会同时连接所有的initialen

  SELECT * 
FROM `evenement` LEFT JOIN `evenementontvanger` 
 ON `evenementontvanger`.`idEvent` = `evenement`.`id` 
 LEFT JOIN `Werknemer` ON `Werknemer`.`Initialen`= `evenementontvanger`.`idWerknemer`
 LEFT JOIN (SELECT `Initialen`,`idWerknemer`,
                  GROUP_CONCAT(`Initialen`) AS `Initials`
            FROM `Werknemer` ) a 
 ON a.`idWerknemer` = `evenementontvanger`.`idWerknemer`

 WHERE `idEvent`=`evenement`.`id` 
AND `evenementontvanger`.`idWerknemer` =a.`idWerknemer`

您可以使用一个共同相关的子查询,它将在一个逗号分隔的列表中显示所有与事件相关的项,其中包含重复的事件列表,如所需的结果集中所示

SELECT * 
,
(SELECT GROUP_CONCAT(ww.`Initialen`) FROM `Werknemer` ww
 JOIN evenementontvanger evv
 ON `ww`.`idWerknemer`= `evv`.`idWerknemer`
 WHERE `evv`.`idEvent`  = `e`.`id`
) INITIALENs
FROM `evenement`  e
LEFT JOIN `evenementontvanger`  ev
 ON `ev`.`idEvent` = `e`.`id` 
 LEFT JOIN `Werknemer` w 
ON `w`.`idWerknemer`= `ev`.`idWerknemer`
如果您需要显示不同的事件,您可以简单地这样做

SELECT * 
,
(SELECT GROUP_CONCAT(`w`.`Initialen`))
 INITIALENs
FROM `evenement`  e
LEFT JOIN `evenementontvanger`  ev
 ON `ev`.`idEvent` = `e`.`id` 
 LEFT JOIN `Werknemer` w 
ON `w`.`idWerknemer`= `ev`.`idWerknemer` GROUP BY e.id