php - Mysql 多对多映射表返回一行并连接会导致重复行的值

标签 php mysql many-to-many concatenation

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

相关文章:

mysql - Laravel 中不使用按钮和 ajax 的自动过滤器

postgresql - 多对多表 - 性能很差

MYSQL多对多关系问题

php - 如何获取调用函数的命名空间?

PHP & mySQL : Year 2038 Bug: What is it? 如何解决?

php - 点击 'home' -logo 返回 404 错误页面

c# - 使用 EF 插入具有多对多关系的操作

php - 查询始终返回特定行

javascript - JSON 与多个连接

mysql - 从 mysql 表中选择最新的