sql >> Databasteknik >  >> RDS >> Mysql

CakePHP kapslar två utvalda frågor

du skulle förmodligen behöva använda en 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)
));

källan för underfrågan finns här:https://github. com/dereuromark/tools/blob/2.0/Lib/MyModel.php#L405 du måste lägga in detta i din AppModel.php

MEN jag tror att underfrågan inte är nödvändig. Du kan förmodligen göra en enda och enkel fråga av det:

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

glöm inte att inkludera kompetens via "contain" om du har rekursivt satt till -1.




  1. Förberedt uttalande som inte låter mig ringa $mysqli->stmt_init()

  2. mysql ...i där klausulen är tvetydig

  3. Hantera olästa inlägg i PHP / MySQL

  4. Rails 5 Mysql UUID