FROM句でのサブクエリを実行したい
(1)FROM句で利用するサブクエリを事前にクエリオブジェクトとして作成する
(2)joinメソッドでメインクエリのテーブルと結合する。テーブル名、結合方法、結合条件などを配列で指定する
(3)テーブルの指定箇所で事前に作成したサブクエリのクエリオブジェクトを指定する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$subquery = $this->Users->SchoolUsers->find() ->select(['user_id' => 'SchoolUsers.user_id']) ->distinct() ->where(['SchoolUsers.school_id in' => $schools]); $q = $this->Users->find() ->contain('SchoolUsers.Schools') ->join([ 'SchoolUsers' => [ 'table' => $subquery, 'type' => 'inner', 'conditions' => 'Users.id = SchoolUsers.user_id' ] ]); |