搜索PHP / MySQL解决方案以获取最新评论

时间:2016-03-25 09:41:00

标签: php mysql

我目前正在写一个小博客脚本。我的数据库中有两个表:

posts & comments

现在我想显示最新的10条评论:

post 1 "do that" (last updated by a user comment)
post 2 "test" (*)
post 3 "hello" (*)

我不想显示评论,我只想显示用户评论最后更新的帖子。也没有双重产出。

表格结构:

posts: id, date, title
comments: id, time, content

实际上不知道,如何解决这个问题。 谢谢!

3 个答案:

答案 0 :(得分:0)

你应该学习基本的sql ... 您需要SELECT声明:

SELECT DISTINCT p.id, p.date, p.title
FROM comments c
INNER JOIN posts p ON (p.id = c.post_id)
ORDER BY c.time DESC
LIMIT 10

答案 1 :(得分:0)

如果您在posts表格查询数据并按comments表格中的数据对其进行排序,则需要JOIN

SELECT DISTINCT * FROM posts 
INNER JOIN comments ON posts.post_id = commnents.post_id 
GROUP BY posts.posts_id ORDER BY comments.comment_id DESC;

我正在考虑comments.comment_id是一个自动增量字段,这样DESC排序将显示最后添加的注释。此代码将选择您的帖子表中的所有数据,但将显示从注册的最后一个注释开始。如果需要,您可以限制在查询结尾添加LIMIT 3

答案 2 :(得分:0)

SELECT p.* FROM posts p INNER JOIN comments c ON p.id = c.post GROUP BY p.id ORDER BY MAX(c.id) DESC

是解决方案。