2012-02-11 39 views
1

我與我創建類似下面的(我在那裏想到一部電影能夠屬於多個類別和類別能夠屬於一個例子練有許多子類別)。從兩個檢索數​​據鏈多到許多關係

不知道如果鏈接兩個多到許多關係是正確的(我在幾個一對多的關係,分割起來),但是當我在做一個查詢我得到很奇怪的結果。

任何線索我怎麼能拿電影標題和流派名進行的所有電影,即使沒有流派名稱的人?我使用類似於此的查詢,但它不返回那些標題: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) + 
+++++++++++++++++++++++++ 
+0

我只看到threee實體,你不提供我們表名。請儘量 – DonCallisto 2012-02-11 09:51:27

+0

您是否嘗試過其他任命爲LEFT OUTER JOIN更準確? – 2012-02-11 09:56:03

回答

0

我提議讓我們的樣本數據,看看我是否得到正確:

  • 電影: 「電鋸驚魂」, 「暮光之城」, 「野戰排」
  • 類型: 「顫慄」,「喜劇」,‘行動’
  • 體裁:‘好萊塢’,‘法國’,‘意大利’

如果這張照片是正確的,那麼你的設計可能是錯誤的,因爲沒有關係betw een電影和Subgenre。這告訴,試試這個

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) 
LEFT OUTER JOIN genre_subgenre 
ON (genre_subgenre.genre_id = genre.genre_id) 
LEFT OUTER JOIN subgenre 
ON (subgenre.subgenre_id = genre_subgenre.subgenre_id) 
+0

謝謝!我沒有想過要放置一個雙左外連接,一個用於電影,另一個用於流派。這工作! – mickael 2012-02-11 10:37:40

+0

我現在要再看一下設計,現在提到它,然後看看是否更好地將電影鏈接到subgenres,還有很多需要了解數據庫:) – mickael 2012-02-11 10:48:04

相關問題