d你好,你能帮我查询有关按最新帖子排序主题的问题吗?我的意思是当有人在上面发帖时,我想要一个话题排在最前面。以下是表格:
讨论
- id_discution
- 姓名
- id_类别
- 日期
评论
- id_comment
- id_user
- 描述
- 输入
- id_discussion
- 日期(时间戳)
这是我的代码,但我得到了重复的主题,但它们是好的
select discussion.id_discution, discussion.name, discussion.id_category,
discussion.date, discussion.report, comments.id_comment, comments.id_pet_dem_des,
comments.date,comments.type
from discussion,comments
where discussion.id_discution=comments.id_discussion
AND type=3
order by comments.id_comment desc
最佳答案
GROUP BY
讨论表的主键...
SELECT
discussion.id_discution, discussion.name, discussion.id_category, discussion.date, discussion.report
FROM
discussion
INNER JOIN
comments
ON discussion.id_discution = comments.id_discussion
AND type=3
GROUP BY
discussion.id_discution
ORDER BY
MAX(comments.date) desc
注意:我没有在 SELECT
子句中包含来自 comments
表的任何数据。
这是因为您只希望每个讨论出现一次,但每个讨论可以有很多评论。您要么多次出现讨论并包含评论,要么不在结果中包含评论数据。
您可以包含聚合值,例如 COUNT(*)
以显示有多少评论 MAX(comments.date)
显示最近对讨论的评论等等。
关于php - mysql查询按上次发帖排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11957145/