1

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

1 に答える 1