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);
,而不是本例中的查询。有人能告诉我它应该是什么样子吗?
答
您可以用ActiveRecord的方法去做,没有阿雷尔的用法:
sub_query = Model.select(:column_name).where(condition).to_sql
Model.
select("column_name(s)").
where("column_name operator ALL (#{sub_query})")
嗯..没有想法? –