对ActiveRecords的SQL查询

时间:2015-04-28 13:16:20

标签: sql ruby-on-rails-4 activerecord arel

我有以下查询,我尝试使用ActiveRecord查询接口:

SELECT *, null, null, null FROM model A
    WHERE A.column IN ( 2, 3 )
    UNION SELECT * FROM model A2 INNER JOIN other_model B ON B.other_column = A2.id
    WHERE B.column IN ( 2, 3 );

select中的null是因为两个表中的列数不同。

我想获取model的所有记录以及model加入other_model的记录,即使该记录已在第一个查询中。

我尝试仅使用带Model.joins()的AR,但它只返回查询的第二部分,而且我只想做一个查询。我也尝试过使用Arel,但我对它并不熟悉,也没有用过。

我最终得到了Model.find_by_sql('raw_query'),但我确信这是Rails获得相同结果的方法。有人可以帮助我吗?

0 个答案:

没有答案