gpt4 book ai didi

sql - 高级计数和加入 Rails

转载 作者:行者123 更新时间:2023-12-04 17:41:28 24 4
gpt4 key购买 nike

我试图找到顶部 n与文章相关的类别数量,两者之间存在 habtm 关系。这是我想要执行的 SQL,但我不确定如何使用 ActiveRecord 执行此操作,除了使用 find_by_sql方法。有没有办法用 ActiveRecord 方法做到这一点:

SELECT 
"categories".id,
"categories".name,
count("articles".id) as counter
FROM "categories"
JOIN "articles_categories"
ON "articles_categories".category_id = "categories".id
JOIN "articles"
ON "articles".id = "articles_categories".article_id
GROUP BY "categories".id
ORDER BY counter DESC
LIMIT 5;

最佳答案

您可以使用 find使用选项来实现相同的查询:

Category.find(:all, 
:select => '"categories".id, "categories".name, count("articles".id) as counter',
:joins => :articles,
:group => '"categories".id',
:order => 'counter DESC',
:limit => 5
)

关于sql - 高级计数和加入 Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2952482/

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