使用不在cakephp中工作的非ID获取数据
我想为以下ID不存在的所有行选择数据。我原以为这会起作用,但没有错误,下面的ID仍然出现在检索到的记录中。我正在为此使用CakePHP2.5使用不在cakephp中工作的非ID获取数据,cakephp,Cakephp,我想为以下ID不存在的所有行选择数据。我原以为这会起作用,但没有错误,下面的ID仍然出现在检索到的记录中。我正在为此使用CakePHP2.5 $ids/// array( (int) 0 => '14721', (int) 1 => '14731', (int) 2 => '14905', (int) 3 => '15808', (int) 4 => '15818', $test=$this->Lessonbak->find('all',
$ids///
array(
(int) 0 => '14721',
(int) 1 => '14731',
(int) 2 => '14905',
(int) 3 => '15808',
(int) 4 => '15818',
$test=$this->Lessonbak->find('all', array(
'fields'=>array('id'),
'recursive' => -1 ) );
$ids=array();
foreach( $test as $item):
array_push($ids,$item['Lessonbak']['id']);
endforeach;
$lessonstudent2=$this->LessonsStudent2->find('all', array(
'conditions' => array( "NOT" => array( 'LessonsStudent2.lesson_id' => $ids )),
'recursive' => -1 ) );
不要选择所有Lessonbak ID,将它们推送到一个数组中,并在LessonsStudent2查询中使用它们,您只需使用一个子查询:
$dbo = $this->getDataSource();
$subquery = $dbo->buildStatement(
array(
'table' => 'lessonbak',
'alias' => 'Lessonbak',
'recursive' => -1,
'fields' => array(
'Lessonbak.id'
)
),
$this
)
$this->LessonsStudent2->find('all', array(
'conditions' => array(
'NOT' => array(
'LessonsStudent2.lesson_id IN (' . $subquery . ')'
)
)
)