モデルからデータを検索(find)する際のWHERE句(conditions)に、SQLをそのまま指定しても動きました。
$where = array(); $where[ 'Aaa' ][ 'flg' ] = 1; $where[] = "( aaa.id IN ( ". "SELECT aaa_id FROM bbb WHERE ". "id IN ( ". "select max_id from ( ". "SELECT aaa_id, max( id ) as max_id FROM bbb WHERE 1 = 1 GROUP BY aaa_id ". ") as T". " )". " ) )"; $this->Aaa->find( 'all', array( 'conditions' => $where ) );
ちなみにエラーなく動作したデータベースはMySQLです。ひょっとするとPostgreSQLではNGかもしれません。