Compare tables Yii


Compare tables Yii

我有两个表。合同和学生。我有两个自定义过滤器。当我选择Registered筛选器时,我的查询返回正确的行。但是当我选择Unregistered过滤器时,我想返回Unregistered的学生。现在它返回所有的学生。我的查询是这样的:

if ($this->filter=='R'){
  $criteria->addBetweenCondition('contractdate',$from, $to, 'AND');
}
else {
  $criteria->addBetweenCondition('schoolstudents.createddate',$from, $to, 'AND');
}

因此,当我选择'R'时,它在contractdate之间正确搜索,并返回我想要的结果。当我选择另一个选项时,我如何在两个表之间进行比较并只返回未注册的学生?实际上,现在我的查询要么返回注册学生,要么返回所有学生。

没关系,我想我弄明白了!我把代码改成这样:

 if ($this->filter=='R'){
      $criteria->addBetweenCondition('contractdate',$from, $to, 'AND');
}
else {
    $criteria2 = new CDbCriteria();
    $criteria2->with = 'contracts';
    $criteria2->condition = 'contractdate IS NULL';
    $criteria->addBetweenCondition('schoolstudents.createddate',$from, $to, 'AND');
    $criteria->mergeWith($criteria2);//for filtering based on unregistered students