gpt4 book ai didi

mysql - PG::InvalidColumnReference:按关联表排序时出现错误

转载 作者:行者123 更新时间:2023-11-29 18:09:05 34 4
gpt4 key购买 nike

我正在尝试根据每个(雇主)拥有的关联记录(雇员)的数量对表(雇主)进行排序/排序。

以下代码适用于 Rails 控制台,其中雇主记录按预期按员工数量排序:

Employer.joins(:employees).group(:id).order('count(employees.id) ASC')

但是,当实际尝试在开发中运行它时,我收到此错误:

PG::InvalidColumnReference: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list

虽然我可以使用“sort_by”,但我更希望结果采用 ActiveRecord::Relation 格式。任何帮助将不胜感激。

最佳答案

通过将 distinct 添加到表达式中,我能够在控制台中重现此错误:在你的情况下,它将是:Employer.distinct.joins(:employees).group(:id).order('count(employees.id) ASC')

错误消息表明您必须将排序依据 (count(employees.id)) 的表达式添加到选择列表中。这可以通过显式指定选择列来实现:

Employer.select('employers.id, count(employees.id)').joins(:employees).group(:id).order('count(employees.id) ASC')

关于mysql - PG::InvalidColumnReference:按关联表排序时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47546842/

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