gpt4 book ai didi

sql - named_scope 按最后评论日期排序帖子

转载 作者:行者123 更新时间:2023-12-04 18:31:07 24 4
gpt4 key购买 nike

帖子有_很多评论

我正在使用 searchlogic它将按命名范围排序。因此,我想要一个按每个帖子的最新评论排序的命名范围。

named_scope :ascend_by_comment, :order => ...comments.created_at??...

我不确定如何执行 :joins 并仅获取最新的评论并按其 created_at 字段排序,所有这些都在 named_scope.

我正在使用 mysql,仅供引用。

编辑:

这是我要尝试模拟的 SQL 查询:

SELECT tickets.*, comments.created_at AS comment_created_at FROM tickets 
INNER JOIN
(SELECT comments.ticket_id, MAX(comments.created_at) AS created_at
FROM comments group by ticket_id) comments
ON tickets.id = comments.ticket_id ORDER BY comment_created_at DESC;

最佳答案

named_scope :ascend_by_comment,
:joins => "LEFT JOIN comments ON comments.post_id = posts.id",
:group => "id",
:select => "posts.*, max(comments.created_at) AS comment_created_max",
:order => "comment_created_max ASC"

您可以尝试优化它,但它应该会起作用,并会为您提供一些如何操作的提示。

编辑:

在你编辑问题并显示你想要内部加入(没有评论没有帖子?)之后,你当然可以更改 :joins => "...":joins = > :评论

关于sql - named_scope 按最后评论日期排序帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2044686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com