我很难弄清楚这一点。希望有人能帮我解决这个问题。
例如。我有一个视频网站,在这个视频网站上,我可以提交带有该视频中播放者姓名的视频帖子。但我不想只添加 1 个名称,它可以更多。所以我有一个 video.php 页面,在这个页面中我可以提交视频的视频标题和参与其中的人的名字。
表:post
-------------------------------------------
-- video_id ---- video_name ---- video_cast --
-------------------------------------------
1 Vid-1 1
2 Vid-2 2
3 Vid-2 2
表:cast
-----------------------------------------
-- cast_id ---- cast_name ---- cast_video --
-----------------------------------------
1 John 1
2 Erik 2
3 Ela 2
现在,如果我在主页上看到这篇新帖子。如果我点击它。它会在 header 中发送 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 个名称。有人知道我如何获取其他剩余名称吗?
您可以使用 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
我是一名优秀的程序员,十分优秀!