跨3个表使用mysql连接

跨3个表使用mysql连接,mysql,join,syntax,Mysql,Join,Syntax,我似乎无法找出在mysql中执行完全连接的语法有什么问题 select movies.title, genres.name from movies full join genres_in_movies on movies.id = genres_in_movies.movie_id full join genres on genres_in_movies.genre_id = genres.id where movies.id = 12345; 以下是相关表格: genres id (

我似乎无法找出在mysql中执行完全连接的语法有什么问题

select movies.title, genres.name    
from movies
full join genres_in_movies
on movies.id = genres_in_movies.movie_id
full join genres
on genres_in_movies.genre_id = genres.id
where movies.id = 12345;
以下是相关表格:

genres
id (pk)
name 

movies
id (pk)
title

genres_in_movies
genre_id
movie_id
我在找一张表,列出电影和它们的类型。一部电影在“类型”表中可能有多个条目,因此我使用完全联接来获得所有结果,而不必在最终结果中重复movies.title属性

如果有什么不同的话,我正在使用mysql。我收到的错误抱怨第5行附近的语法错误

编辑:

好的,现在是一个示例输出:

Name    Genre
Batman  Action
Batman  Crime
Batman  Mystery
我希望得到一个不包含3行的表来保存此信息,而是包含如下内容:

Title  Genre
Batman Action, Crime, Mystery
还是不可能呢?

试试这个:

SELECT m.title, g.name
FROM movies m
JOIN genre_in_movies gim on gim.movie_id = m.id
JOIN genres g on g.id = gim.movie_id
WHERE m.id = '12345'
试试这个:

SELECT m.title, g.name
FROM movies m
JOIN genre_in_movies gim on gim.movie_id = m.id
JOIN genres g on g.id = gim.movie_id
WHERE m.id = '12345'

MySQL不支持完全连接。必须使用UNION子句组合使用左外联接和右外联接

你可以看到一个解释

无论如何,我不认为一个完整的加入会给你你想要得到的

为了避免每部电影都有一张以上的唱片,你应该按电影分组,但是你必须做一次分组演唱会,在一张唱片中展示所有的类型

请为您的查询提供一个预期输出示例

编辑:


MySQL不支持完全连接。必须使用UNION子句组合使用左外联接和右外联接

你可以看到一个解释

无论如何,我不认为一个完整的加入会给你你想要得到的

为了避免每部电影都有一张以上的唱片,你应该按电影分组,但是你必须做一次分组演唱会,在一张唱片中展示所有的类型

请为您的查询提供一个预期输出示例

编辑: