我目前正在写一个小博客脚本。我的数据库中有两个表:
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
实际上不知道,如何解决这个问题。 谢谢!
答案 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
是解决方案。