gpt4 book ai didi

ruby-on-rails-3.1 - activerecord 中的子查询

转载 作者:行者123 更新时间:2023-12-03 05:15:05 25 4
gpt4 key购买 nike

使用 SQL,我可以轻松地执行这样的子查询

User.where(:id => Account.where(..).select(:user_id))

这会产生:

SELECT * FROM users WHERE id IN (SELECT user_id FROM accounts WHERE ..)

如何使用rails' 3 activerecord/arel/meta_where 来做到这一点?

我确实需要/想要真正的子查询,没有 ruby​​ 解决方法(使用多个查询)。

最佳答案

Rails 现在默认执行此操作:)

Message.where(user_id: Profile.select("user_id").where(gender: 'm'))

将产生以下 SQL

SELECT "messages".* FROM "messages" WHERE "messages"."user_id" IN (SELECT user_id FROM "profiles" WHERE "profiles"."gender" = 'm')

(“现在”指的版本号很可能是3.2)

关于ruby-on-rails-3.1 - activerecord 中的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5483407/

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