我很难搞清楚这一点。希望有人可以帮我解决这个问题。
例如。我有一个视频网站,在这个视频网站上,我可以提交视频帖子,其中包含播放此视频的人的姓名。但我不想只添加一个名字,它可以更多。所以我有一个 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个名称。有人知道我怎么能取其他名字吗?
答案 0 :(得分: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