使用 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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)