CakePHPのfindでサブクエリを実行したい。WHERE句で「xxx in ( subquery )」というSQLを構築する。getAssociation()というメソッドを利用する
1 2 3 4 5 6 7 |
$subquery = $this->Users->getAssociation('SchoolUsers')->find() ->select(['SchoolUsers.user_id']) ->distinct() ->where(['SchoolUsers.school_id in' => $schools]); $q = $this->Users->find() ->contain('SchoolUsers.Schools') ->where(['id IN' => $subquery]); |