2013-08-07 34 views
0

我很難弄明白這一點。希望有人能幫我弄清楚這一點。如何在多行上使用相同ID在MYSQL中連接2個表


例如,我有一個視頻網站,在此視頻網站中,我可以提交視頻帖子,其中包含在此視頻中播放的人的姓名。但我不想僅僅添加1個名字就可以更多。所以我會有一個video.php頁面,在這個頁面中我可以提交視頻的視頻標題以及在其中播放的人的姓名。

表:

------------------------------------------- 
    -- video_id ---- video_name ---- video_cast -- 
    ------------------------------------------- 
     1    Vid-1   1 
     2    Vid-2   2 
     3    Vid-2   2 

表:

----------------------------------------- 
    -- cast_id ---- cast_name ---- cast_video -- 
    ----------------------------------------- 
     1    John   1 
     2    Erik   2 
     3    Ela    2 

現在,如果我將在我的主頁,我看到這個新的崗位。如果我點擊它。它會發送頭文件中的video_id信息,以便我可以從video.php中獲取它。

頁:video.php

<?php 

    $id = $_GET['id']; 
    $result = mysql_query 
    (" 
     SELECT * 
     FROM post 
     LEFT JOIN cast 
     ON post.video_cast = cast.cast_video 
     WHERE video_id='$id' 
    "); 

    while($row = mysql_fetch_array($result)){ 
     echo ' 
        <h1>'.$row['video_name'].'</h1> 
        starring: '.$row['cast_name']. 
       ';     
    } 
?> 

現在我怎麼會能夠展現VIDEO_NAME和所有cast_name與該視頻相關聯。我使用的JOIN代碼只能在表格中顯示1個名稱。任何人都知道我可以如何取回其他剩餘的名字?

回答

3

您可以group_concat()

SELECT video_name, group_concat(cast_name) cast 
FROM post 
LEFT JOIN cast ON post.video_cast = cast.cast_video 
WHERE video_id='$id' 
group by video_name 
+0

列出一排的名稱,你可以解釋一下我這個GROUP_CONCAT? 我現在就去試試看。 – user2651511

+0

如果按列分組,則可以使用它。有關分組列的唯一值的所有數據都可以放在一個逗號列表中。在我更新的答案中查看鏈接。 –

+0

它不工作 你看,我有其他的東西在表後太像視頻DESCRIPT(video_desc)和video_src其中包含了視頻 我將如何得到這些展示過的iframe嵌入? – user2651511

相關問題