2015-05-23 94 views
0

我有一個MOVIE表,其中包含與流派的多對多關係以及具有一對多關係的評論表。 AKA,一部電影可以有很多流派,一個流派可以有很多電影。電影可以有很多評論。在單個查詢中是否可以將多對多關係與一對多關係結合使用?

我的問題是,因爲我試圖顯示數據庫中的所有數據,我想顯示標題,相關流派,然後是所有評論。我似乎無法僅僅通過查詢來做到這一點,所以我開始添加自己的邏輯,但這對我也不起作用。我一直在想,必須有某種方法將邏輯合併爲一個查詢。

這是我到目前爲止有:

$query2 = "SELECT * FROM movie m 
JOIN moviegenre mg ON m.id = mg.movieid 
JOIN genre g ON g.id = mg.genreid 
JOIN review r ON r.movieid = m.id 
WHERE m.id = mg.movieid"; 

$title = "starting"; 
$display = true; 
foreach ($db->query($query2) as $row2) 
{ 
    if ($title != $row2['title']) 
    { 
     $title = $row2['title']; 
     echo '<h2 id="title">' . $row2['title'] . " (" . $row2['year'] 
      . ')<br/><hr/></h2><h4> <u>- Genres - </u><br/>'; 
     $display = false; 
    } 
    echo $row2['name'] . ' <br/> '; 

    if ($display == false) 
    { 
     $display = true; 
     echo "<h4 id=\"rating\">" . $row2['rating'] . " stars<br/> " . $row2['subject'] . "<br/>" . "<h5 id=\"rating\">" . $row2['content'] . "</h5></h4>"; 
    } 
} 
echo '</h4>'; 

這裏是結果。請注意,它只能包含一個評論,格式非常難看。我知道這是非常難看的代碼,它只是我試圖用迂迴的方式修復錯誤。奪寶的

攻略(1981)

  • 流派 - 行動 5星 偉大的電影

這部電影永遠不會過時

冒險

回答

0

我發現幾天後閱讀答案。我瞭解到了連接,並意識到他們正是我所期待的。