[英]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進行一些過濾:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.