Php MySQL-将其他表中的多行作为数组连接

Php MySQL-将其他表中的多行作为数组连接,php,mysql,pdo,Php,Mysql,Pdo,我不知道如何从第二个表连接多行。我尝试过使用GROUP\u CONCAT,但我想将它们显示为一个数组(请参见下图中的绿色框) 这里的主要问题是来自airways栏目的1,2,4。我真的想避免仅仅为了连接两个表而使用第三个表。我知道数组很难存储在MySQL中,但是有没有什么神奇的方法可以从下表中获取所需的信息 我希望我有一些代码,但我在这里迷路了。非常感谢你的指点 实际上,您可以使用在集合中查找。下面给出了一个简单的查询: SELECT c.name AS city_name, a.name AS

我不知道如何从第二个表连接多行。我尝试过使用
GROUP\u CONCAT
,但我想将它们显示为一个数组(请参见下图中的绿色框)

这里的主要问题是来自airways栏目的
1,2,4
。我真的想避免仅仅为了连接两个表而使用第三个表。我知道数组很难存储在MySQL中,但是有没有什么神奇的方法可以从下表中获取所需的信息

我希望我有一些代码,但我在这里迷路了。非常感谢你的指点


实际上,您可以使用
在集合中查找。下面给出了一个简单的查询:

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)。此查询将输出:

然后可以使用
JSON\u encode


作为补充说明,如果可能的话,您应该非常期待数据库的规范化。它违反了,而且还有很多副作用,你可以检查一下

@sagi我认为对象符号是偶然的。她提到她想要一个数组。老实说,这只是伪代码。我希望它在PHP中有这样的结果,但显然这不太重要。将气道ID存储在逗号分隔的字符串中并没有特别大的帮助。最好有一个单独的“连接”表,将气道id链接到城市idog_city是一个mysql表吗?@Tompina请检查下面给出的答案,这非常有效!一个问题,目前它只是返回城市名称(曼谷)。我的真实示例大约有20列。这会大大降低性能吗,还是应该使用第三个表来链接其他两个表?非常感谢@Tompina我认为这不会大大降低查询速度,但是如果可能的话,您应该规范化表。或者,如果你能提供一些真实的例子,我可以测试和优化queryGot它!这就是我所需要知道的:)谢谢你的快速解释!!