Mysql 多对多映射 table return 一行并连接会导致重复行的值

Mysql Many to Many with Mapping table return one row and concatenate the values that would cause duplicate rows

我正在使用 mysql 并且有三个 table,一个用于事件,一个用于官员,还有一个映射 table。 我将如何查询以便发生以下情况:

表是这样的结构:

**Official** 
-------------
id    name
-------------
1     ali
2     ahmed
3     john
4     king
6     kyle

**Event**
-------------
id    name
-------------
1     event 1
2     event 2
3     event 3

**Mapping**
-------------
id   oid   eid
-------------
1     1     1
2     3     1
3     6     2
4     1     3
5     4     3
6     5     3
7     6     3

你可以使用INNER JOIN and GROUP_CONCAT,看下面的例子:-

SELECT 
E.id, E.name, GROUP_CONCAT(O.name) OfficialName
FROM Mapping M 
INNER JOIN Event E
    ON M.eid = E.id
INNER JOIN Official O
    ON M.oid = O.id
GROUP BY E.id