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
我正在使用 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