php - mysql查询按上次发帖排序

标签 php mysql sql database

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/

相关文章:

mysql - 选择行值作为 mysql select 中的列标题

php - 使用 .htaccess 重定向一个类别并将其发布到一个新的 URL

php - 在 MVC 中返回 View 时如何记录 PHP @return

c# - C# 中的 2 个数据库中的注册用户

mysql - 如何使用列中特定 id 的 SQL 查询来查找字符串计数?

mysql - 从 json 字段 mysql 中的键、值对列表中提取一个键

sql - NOT IN 子句中的 NULL 值

php - 如何连接两个表以便我可以使用过滤器来查询两个表

PHP 从构造函数中重新抛出异常

mysql - Rails 开发- MySQL 连接问题