我正在使用 mysql,有三个表,一个用于事件,一个用于官员,还有一个映射表。 我将如何查询以便发生以下情况:
- 每个事件一行
- 将官员的多个值连接到相应的单个事件行中。
表是这样的结构:
**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
和 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
关于php - Mysql 多对多映射表返回一行并连接会导致重复行的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30872267/