合并来自两个MySQL表的数据

时间:2010-04-30 19:40:55

标签: php mysql

我正在尝试将MySQL中两个表的数据与PHP结合起来。

我想从“posts”表中选择所有数据(id,title,post_by,content和created_at)。

如果comment_id等于帖子ID,我想从“评论”表中选择comment_id COUNT。

最后,我想在此订单上回复/打印一些内容:

<? echo $row->title; ?>
Posted by <? echo $row->post_by; ?> on <? echo $row->created_at; ?> CST
<? echo $row->content; ?>
<? echo $row->comment_id; ?> comments | <a href="comment.php?id=<? echo $row->id; ?>">view/post comments</a>

我不确定如何“组合”来自两个表的数据。我尝试了很多东西,花了几个晚上,没有运气。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

您正在寻找的是一个加入

select * from posts p
inner join comments c on p.post_id = c.comment_id

要计算所有帖子的评论行数,可以使用嵌套的select语句:

select count(comment_id) from comments c 
where comment_id in (select id from posts)

答案 1 :(得分:0)

SELECT p.id, p.title, p.post_by, p.content, p.created_at, Count(c.comment_id)
FROM posts p
LEFT JOIN comments c on p.post_id = c.comment_id
GROUP BY p.id, p.title, p.post_by, p.content, p.created_at