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'})