2017-04-07 49 views
0

我需要使用ANY/ALL創建對數據庫的查詢。在研究Arel的可能性後,我發現Arel沒有任何簡短的命令(例如eq,lt,gt等),但它只有一個例子Arel::SqlLiteral。對我來說不是那麼obviousl我怎麼可以使用經典的查詢是這樣的:Arel(Rails)是否可以進行復雜查詢?

SELECT column_name(s) 
FROM table_name 
WHERE column_name operator ALL 
(SELECT column_name FROM table_name WHERE condition); 

,而不是本例中的查詢。有人能告訴我它應該是什麼樣子嗎?

+0

嗯..沒有想法? –

回答

2

您可以用ActiveRecord的方法去做,沒有阿雷爾的用法:

sub_query = Model.select(:column_name).where(condition).to_sql 
Model. 
    select("column_name(s)"). 
    where("column_name operator ALL (#{sub_query})")