簡體   English   中英

Rails 3 ActiveRecord:UNION

[英]Rails 3 ActiveRecord: UNION

有沒有辦法在Rails 3中使用MySQL UNION?

我認為你通過直接執行查詢來實現這一目標的唯一方法。

ActiveRecord::Base.connection.execute("SELECT REPEAT('a',1) UNION SELECT REPEAT('b',10)")

這將返回ActiveRecord結果集。 如果您希望包含在模型中的結果執行以下操作:

MyModel.find_by_sql("...")

我找到了一個使用select的整潔黑客。 例如,如果要在User和OtherUser之間建立聯合。

User.select('id from other_users union select id')

這將生成此SQL

"SELECT id from other_users union select id FROM users " 
Model.find_by_sql("your union query")

正如您可以在此主題上閱讀的那樣,有人正在研究在Rails中創建聯合查詢的更好解決方案:

https://github.com/rails/arel/pull/118

同時,我編寫了一個小的hack,你可以使用它來創建簡單的聯合查詢,並使用DISTINCT,ORDER BY和LIMIT進行一些過濾:

http://coderwall.com/p/9hohaa

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM