我很难弄清楚如何从第二张表中联接多行。我尝试使用GROUP_CONCAT
,但想将它们显示为数组(请参见下图中的绿色框)
这里的主要问题是来自航空专栏的1,2,4
。我真的想避免只有第三个表将两个表连接在一起。我知道数组很难存储在MySQL中,但是有一些神奇的方法可以从下表中获取所需的信息吗?
我希望我有一些代码,但是我在这里迷路了。非常感谢指针!
答案 0 :(得分:1)
您实际可以做的是使用FIND_IN_SET
。下面是一个简单的查询:
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_encode
作为旁注,如果可能的话,您应该真正地期待规范化数据库。它违反了first normal form,而且还有更多的副作用,您可以检查here