sql >> データベース >  >> RDS >> Mysql

2つの選択クエリをネストするCakePHP

    おそらくsubquery()を使用する必要があります:

    $subqueryOptions = array('fields' => array('competence_id'), 'conditions' => array('employee_id'=>$user_id));
    $subquery = $this->Competence->CompetenceRating->subquery('all', $subqueryOptions);
    
    $res = $this->Competence->CompetenceRating->find('all', array(
        'conditions' => array('id NOT IN '. $subquery)
    ));
    

    サブクエリのソースは次のとおりです: https://github。 com / dereuromark / tools / blob / 2.0 / Lib / MyModel.php#L405 これをAppModel.phpに入れる必要があります

    しかし、サブクエリは必要ないと思います。おそらく、それから単一の簡単なクエリを作成できます:

    $this->Competence->CompetenceRating->find('all', array(
        'group' => 'competence_id', 
        'conditions' => array('NOT' => 'employee_id'=>$user_id)),
        'contain' => array('Competence')
    ));
    

    再帰を-1に設定している場合は、「含む」を介してコンピテンシーを含めることを忘れないでください。




    1. groupbyとLaravelで最新の行を取得する

    2. SQLServerの複雑さを軽減するためのヒント

    3. MariaDBで値に少なくとも1桁の数字が含まれているかどうかを検出する方法

    4. MySQLビューは通常のクエリよりも高速ですか?