我刚刚开始使用 Arel(与 MySQL),我对基本查询很满意。但是我被困在多连接中。我有以下查询,我想使用 Arel?可以做一些帮助。
SELECT count(*)
FROM table_1 p
LEFT JOIN
(SELECT pid
FROM table_2 s LEFT JOIN table_3 i ON s.key = i.key
WHERE i.default = 'y') AS table_4
ON p.pid = table_4.pid AND isnull(table_4.pid) AND p.show = 'y'
这是我到目前为止所管理的(显然最终查询不起作用)
=> 子查询
table_2.select(:pid).joins(table_3).
where(:table_3 => {:default => 'y'}).as('table_4')
=> 最后
table_1.joins(:table_1 => :table_4).
where (:table_4 => {ISNULL(:pid)}, :table_1 => {:show = 'y'})