Mysql
 sql >> Datenbank >  >> RDS >> Mysql

CakePHP verschachtelt zwei ausgewählte Abfragen

Sie müssten wahrscheinlich eine Unterabfrage() verwenden:

$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)
));

die Quelle für die Unterabfrage ist hier:https://github. com/dereuromark/tools/blob/2.0/Lib/MyModel.php#L405 Sie müssen dies in Ihre AppModel.php einfügen

ABER ich denke, die Unterabfrage ist nicht notwendig. Sie können wahrscheinlich eine einzelne und einfache Abfrage daraus machen:

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

Vergessen Sie nicht, Kompetenz über "enthalten" einzuschließen, wenn Sie rekursiv auf -1 gesetzt haben.