sql >> Databáze >  >> RDS >> Mysql

CakePHP vnoření dvou vybraných dotazů

pravděpodobně budete muset použít 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)
));

zdroj pro dílčí dotaz je zde:https://github. com/dereuromark/tools/blob/2.0/Lib/MyModel.php#L405 musíte to vložit do svého AppModel.php

ALE myslím, že poddotaz není nutný. Pravděpodobně z toho můžete vytvořit jediný a snadný dotaz:

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

nezapomeňte zahrnout Competence přes "contain", pokud máte rekurzivní nastavení na -1.




  1. Použití jednoho ze sloupců ve složeném klíči jako cizího klíče

  2. SQL SUM() pro začátečníky

  3. Django:Unbuffered mysql dotaz

  4. Chyba serveru SQL 206:Kolize typu operandu