gpt4 book ai didi

mysql - 手动编写具有 has_many 关系的 SQL 查询

转载 作者:行者123 更新时间:2023-11-30 00:26:24 25 4
gpt4 key购买 nike

由于我无法控制的原因,我需要在 MySQL 中手动编写 SQL 查询。

我的模型是:

class Survey < ActiveRecord::Base
has_many :buildings
has_many :floors, through: :buildings
has_many :workspaces, through: :floors
end

class Workspace < ActiveRecord::Base
belongs_to :floor
end

class Floor < ActiveRecord::Base
has_many :workspaces
end

我需要根据调查拥有的工作区数量来排序。

在 Rails 代码中,我可以执行以下操作:@survey.workspaces.size,这将获得 @survey 拥有的工作空间数量。

给定这个 SQL 查询:

SELECT `surveys`.* 
FROM `surveys`
ORDER BY surveys.workspaces.size asc
LIMIT 10
OFFSET 0

如何手动编写根据工作区数量排序的查询?

最佳答案

向模型添加范围。找到产生所需答案的 AR。将 to_sql 添加到该 ActiveRecord 以获取所需的 SQL 代码。

关于mysql - 手动编写具有 has_many 关系的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22840167/

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