mysql - 我如何在 MySQL 中处理这样的查询,也许是 Group_Concat?

标签 mysql sql

Database

好的,我在 MySQL 中有上述数据库布局,我正在尝试进行一个查询来获取有关电影的所有信息并对其进行良好的格式化。

假设我的表格中有以下信息

movie
id        name
1         "Batman"
2         "Superman"

genre
id        name
1         "Thriller"
2         "Horror"

language  
id        lang
1         "English"
2         "Spanish"

theatre
id        name
1         "First Theatre"
2         "Second Theatre"

movie_genre
movie_id  genre_id
1         1
1         2
2         2

movie_release
id        language_id     movie_id
1         1               1
2         2               1
3         1               2

theatre_release
movie_release_id     theatre_id
1                    1
2                    2
3                    1
3                    2

理想情况下,输出是这样的

movie.name   genres             releases
"Batman"     "thriller, horror" English, Theatre One
                                Spanish, Theatre Two

"Spiderman"  "Horror"           Spanish, Theatre One, Theatre Two

我的查询尝试

Select
     movie.name
     Group_Concat(genre.name) as genres
     Group_concat(language.lang, group_concat(theatre.name)) as releases
from
    movie
    left join movie genre on movie.id = movie_genre.movie_id
    left join genre on genre.id = movie_genre.genre_id
    left join movie_release on movie_release.movie_id = movie.id
    left join language on movie_release.language_id = language.id
    left join theatre_release on theatre_release.movie_release_id = movie_release.id
    left join theatre on theatre_release.theatre_id = theatre.id

最佳答案

您不需要嵌套的GROUP_CONCAT

使用CONCAT组合langname然后添加GROUP_CONCAT得到结果

Select
     movie.name
     Group_Concat(genre.name) as genres
     GROUP_CONCAT(CONCAT(language.lang,' , ',theatre.name) SEPARATOR ' | ') as releases
from ...

关于mysql - 我如何在 MySQL 中处理这样的查询,也许是 Group_Concat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40188228/

相关文章:

php - MySQL 使用 HAVING 子句从多个表中选择

mysql结果重组结果

mysql - SQL - 如何根据另一个值的最大值选择一个值?

PHP:输入 MySQL 查询

mysql - 使用 where 条件将表数据从一个数据库复制到另一个数据库

java - 由于字段大小有限,数据未保存在数据库中

Javascript 元素 id 到 AJAX url

php - 我无法通过 php 上传文件

mysql - 如何从 Perl 脚本创建 MySQL 数据库?

PHP PDO : How to insert multiple rows?