sql >> Database teknologi >  >> RDS >> Mysql

CakePHP indlejrer to udvalgte forespørgsler

du ville sandsynligvis skulle bruge en underforespørgsel():

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

kilden til underforespørgsel er her:https://github. com/dereuromark/tools/blob/2.0/Lib/MyModel.php#L405 du skal indsætte dette i din AppModel.php

MEN jeg tror, ​​at underforespørgslen ikke er nødvendig. Du kan sikkert lave en enkelt og nem forespørgsel ud af det:

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

glem ikke at inkludere kompetence via "contain", hvis du har rekursivt sat til -1.




  1. ASCIISTR() Funktion i Oracle

  2. PostgreSQL 12:Fremmednøgler og opdelte tabeller

  3. Slet duplikerede mysql-rækker uden primær nøgle

  4. Laravel-migreringsfejl:Syntaksfejl eller adgangsovertrædelse:1071 Den angivne nøgle var for lang; max nøglelængde er 767 bytes