我的数据库中有一个一对多的关系。

我想获取所有的城市与所有的影院附加在一行作为CSV。我试过了:
SELECT city.*,CONCAT(cinema_name)
FROM city
LEFT JOIN cinema
ON cinema.city_id=city.city_id
GROUP BY city.city_id但这只会返回第一家影院。
发布于 2013-02-25 21:13:37
使用GROUP_CONCAT而不是CONCAT
SELECT
city.*,
GROUP_CONCAT(cinema_name) AS `Cinemas`
FROM city
LEFT JOIN cinema
ON cinema.city_id = city.city_id
GROUP BY city.city_id发布于 2013-02-25 21:14:53
尝试此查询
SELECT ct.city_id, GROUP_CONCAT(cinema_name)
FROM cinema c, city ct
WHERE c.city_id = ct.city_id
Group BY c.city_id;发布于 2018-06-19 13:36:41
对于在MySQLV5.7上测试的当前版本的,如果希望将数据作为json对象,可以尝试这样做。
SELECT
city.*,
GROUP_CONCAT(
JSON_OBJECT(
'cinema_name', cinema_name
)) AS `Cinemas`
FROM city
LEFT JOIN cinema
ON cinema.city_id = city.city_id
GROUP BY city.city_idhttps://stackoverflow.com/questions/15067808
复制相似问题