我有以下查询,我尝试使用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获得相同结果的方法。有人可以帮助我吗?