Rails 3 ActiveRecord:UNION
有没有办法在 Rails 3 中使用 MySQL UNION?
Is there any way to use MySQL UNION in Rails 3?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
有没有办法在 Rails 3 中使用 MySQL UNION?
Is there any way to use MySQL UNION in Rails 3?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
我认为让这个工作的唯一方法是直接执行查询。
这将返回一个 ActiveRecord 结果集。如果您希望将结果包装在模型中,请执行以下操作:
I think the only way you're going to get this to work by directly executing the query.
This returns an ActiveRecord resultset. If you want the results wrapped in a model do something like this:
我发现了一个使用 select 的巧妙技巧。
例如,如果您想在 User 和 OtherUser 之间建立并集。
这将生成这个 SQL
I found a neat hack using select .
For example if you want to make a union between User and OtherUser .
this will generate this SQL
正如您可以在该线程中读到的那样,有人正在研究在 Rails 中创建联合查询的更好解决方案:
https ://github.com/rails/arel/pull/118
同时,我编写了一个小技巧,您可以使用它创建简单的联合查询并使用 DISTINCT、ORDER BY 和 LIMIT 进行一些过滤:
http://coderwall.com/p/9hohaa
As you can read on this thread there are people working on a better solution for creating union queries in Rails:
https://github.com/rails/arel/pull/118
Meanwhile, I have written an small hack with which you'll be able to create simple union queries and do some filters with DISTINCT, ORDER BY and LIMIT:
http://coderwall.com/p/9hohaa