关于php:MySQL – 从其他表中连接多行作为数组

MySQL - Join multiple rows from other table as array

本问题已经有最佳答案,请猛点这里访问。

我无法弄清楚如何从第二个表连接多个行。 我尝试过使用GROUP_CONCAT,但我希望将它们显示为数组(参见下图中的绿框)

这里的主要问题是来自气道柱的1,2,4。 我真的想避免使用第三个表来将两个表连接在一起。 我理解数组很难存储在MySQL中,但是有一些神奇的方法可以从下表中获得所需的信息吗?

我希望我有一些代码,但我迷失了。 非常感谢指针!

enter image description here


你实际可以做的是,使用FIND_IN_SET。 下面给出一个简单的查询:

1
2
SELECT c.name AS city_name, a.name AS airway_name, a.rating AS airway_rating
FROM og_city AS c JOIN og_airway AS a ON FIND_IN_SET(a.id, c.airways) WHERE c.id = 2

在这里你传递id为2,这将有助于选择曼谷的航班(og_city,曼谷id为2)。 此查询将输出:

enter image description here

然后可以使用json_encode将其转换为JSON(作为所需的输出)

作为旁注,如果可能的话,您应该真正期待规范化数据库。 它违反了第一种常规形式,并且还有更多的副作用,你可以在这里查看