gpt4 book ai didi

sql - Rails 相关子查询同表

转载 作者:太空宇宙 更新时间:2023-11-03 18:16:55 25 4
gpt4 key购买 nike

我的问题是将以下 SQL 查询转换为 ActiveRecord Rails:

SELECT H1.* 
FROM USERS H1
WHERE DAYS = (SELECT MAX(DAYS) FROM USERS H2
WHERE H1.COUNTRY = H2.COUNTRY
AND H1.NAME = H2.NAME
AND H1.MARKET = H2.MARKET
AND H1.TALL = H2.TALL)

在将其转换为 Rails ActiveRecord 时,我最大的问题是在同一个表上的相关子查询查询 - “USERS”和别名表名在 ActiveRecord 中是非法的。

Find_by_sql 也不适合我,因为它不能与其他 ActiveRecord 函数一起使用。

最佳答案

你可以这样写

User.select("view.*")
.from("User.group(:name, :country, :market, :tall)
.maximum(:days), :view)")
.where("days = ?", view.days)

看看#from了解正在发生的事情的方法。

关于sql - Rails 相关子查询同表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24645808/

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