Arel(Rails)是否可以进行复杂查询?

问题描述:

我需要使用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

嗯..没有想法? –

您可以用ActiveRecord的方法去做,没有阿雷尔的用法:

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