我正在练习一个我正在创建的示例,如下所示(我正在考虑一部电影能够属于许多类别,而一个类别能够属于具有许多子类别)。
不确定链接两个多对多关系是否正确(我将它们分成几个一对多关系),但是当我进行查询时,我得到了非常奇怪的结果。
任何线索我如何获得所有电影的电影标题和流派名称,即使是没有流派名称的电影?我正在使用与此类似的查询,但它没有返回这些标题:S
如果我在第一个多对多关系之后停止,结果似乎是正确的,但是一旦我添加了第二个关系(使用下面的查询),我什么也没有收到……请问有什么建议吗?
SELECT movie.title, genre.name
FROM movie
LEFT OUTER JOIN movie_genre
ON (movie.movie_id = movie_genre.movie_id)
JOIN genre
ON (genre.genre_id = movie_genre.genre_id)
JOIN genre_subgenre
ON (genre_subgenre.genre_id = genre.genre_id)
JOIN subgenre
ON (subgenre.subgenre_id = genre_subgenre.subgenre_id)
+++++++++++++++++
+ Movie ID (PK) +
+ Movie Title +
+++++++++++++++++
|
|
|
+++++++++++++++++
+ Movie ID (FK) +
+ Genre ID (FK) +
+++++++++++++++++
|
|
|
+++++++++++++++++++
+ Genre ID (PK) +
+ Genre Name +
+++++++++++++++++++
|
|
|
++++++++++++++++++++
+ Genre ID (FK) +
+ Subgenre ID (FK) +
++++++++++++++++++++
|
|
|
+++++++++++++++++++++++++
+ Subrenre ID (PK) +
+ Subgenre Name (FK) +
+++++++++++++++++++++++++