跨3个表使用mysql连接
我似乎无法找出在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 (
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子句组合使用左外联接和右外联接 你可以看到一个解释 无论如何,我不认为一个完整的加入会给你你想要得到的 为了避免每部电影都有一张以上的唱片,你应该按电影分组,但是你必须做一次分组演唱会,在一张唱片中展示所有的类型 请为您的查询提供一个预期输出示例 编辑: