我目前正在写一个小博客脚本。我的数据库中有两个表:
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
根本不知道该怎么解决。非常感谢。
您应该学习基本的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
SELECT p.* FROM posts p INNER JOIN comments c ON p.id = c.post GROUP BY p.id ORDER BY MAX(c.id) DESC
是解决方案。
如果要查询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
。