在yii中添加不在状态中

在yii中添加不在状态中,yii,Yii,如何在联接查询条件中写入AddNotin条件 public function assigned() { // @todo Please modify the following code to remove attributes that should not be searched. $criteria=new CDbCriteria; $criteria->addCondition("t.tile_i

如何在联接查询条件中写入AddNotin条件

public function assigned()
{
    // @todo Please modify the following code to remove attributes that should not be searched.

    $criteria=new CDbCriteria;                              
    $criteria->addCondition("t.tile_id <> (INNER JOIN `tbl_user_tile` AS `pr` ON pr.tile_id = t.tile_id");                
    $criteria->compare('deleted_by',$this->deleted_by,true);
    $criteria->compare('deleted_date',$this->deleted_date,true);

    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
    ));
}
public function assigned()
{
//@todo请修改以下代码以删除不应搜索的属性。
$criteria=新的CDB标准;
$criteria->addCondition(“t.tile\u id(在pr.tile\u id=t.tile\u id上将`tbl\u user\u tile`作为`pr`内部联接”);
$criteria->compare('deleted_by',$this->deleted_by,true);
$criteria->compare('deleted_date',$this->deleted_date,true);
返回新的CActiveDataProvider($this,array(
“条件”=>$criteria,
));
}
我想返回不匹配的记录它不工作我的代码中有什么错误? 我想在第二个表记录中获取第一个不匹配的表记录。

最后我得到了输出

public function assigned()
{
    // @todo Please modify the following code to remove attributes that should not be searched.

            $classes = Question::model()->findAll(array(   
'join' => 'INNER JOIN `tbl_user_tile` AS `pr` ON pr.tile_id = t.tile_id'));


            $classarray =   "";
            for($i=0;$i<count($classes);$i++)
            {
            $classarray .= $classes[$i]['tile_id'].",";                
            }

            $classarray    = rtrim($classarray,',');               
            $criteria=new CDbCriteria;

            $criteria->addCondition("t.tile_id  not in (" . $classarray . ")");     

    $criteria->compare('deleted_by',$this->deleted_by,true);
    $criteria->compare('deleted_date',$this->deleted_date,true);

    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
    ));
}
public function assigned()
{
//@todo请修改以下代码以删除不应搜索的属性。
$classes=Question::model()->findAll(数组(
'join'=>'内部连接'tbl_user_tile'作为'pr'在pr.tile上的'pr'\u id=t.tile\u id');
$classarray=“”;
对于($i=0;$iaddCondition(“t.tile\u id不在(“.$classarray.”)中”);
$criteria->compare('deleted_by',$this->deleted_by,true);
$criteria->compare('deleted_date',$this->deleted_date,true);
返回新的CActiveDataProvider($this,array(
“条件”=>$criteria,
));
}
最后我得到了输出

public function assigned()
{
    // @todo Please modify the following code to remove attributes that should not be searched.

            $classes = Question::model()->findAll(array(   
'join' => 'INNER JOIN `tbl_user_tile` AS `pr` ON pr.tile_id = t.tile_id'));


            $classarray =   "";
            for($i=0;$i<count($classes);$i++)
            {
            $classarray .= $classes[$i]['tile_id'].",";                
            }

            $classarray    = rtrim($classarray,',');               
            $criteria=new CDbCriteria;

            $criteria->addCondition("t.tile_id  not in (" . $classarray . ")");     

    $criteria->compare('deleted_by',$this->deleted_by,true);
    $criteria->compare('deleted_date',$this->deleted_date,true);

    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
    ));
}
public function assigned()
{
//@todo请修改以下代码以删除不应搜索的属性。
$classes=Question::model()->findAll(数组(
'join'=>'内部连接'tbl_user_tile'作为'pr'在pr.tile上的'pr'\u id=t.tile\u id');
$classarray=“”;
对于($i=0;$iaddCondition(“t.tile\u id不在(“.$classarray.”)中”);
$criteria->compare('deleted_by',$this->deleted_by,true);
$criteria->compare('deleted_date',$this->deleted_date,true);
返回新的CActiveDataProvider($this,array(
“条件”=>$criteria,
));
}

您可以按如下方式更改查询:

public function assigned()
{
    // @todo Please modify the following code to remove attributes that should not be searched.
    $criteria = new CDbCriteria;
    $criteria->join = "LEFT JOIN `tbl_user_tile` AS `pr` ON pr.tile_id = t.tile_id";
    $criteria->condition = "pr.tile_id IS NULL";

    $criteria->compare('deleted_by',$this->deleted_by,true);
    $criteria->compare('deleted_date',$this->deleted_date,true);

    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
    ));
}

希望这有帮助。如果有任何问题,请告诉我。

您可以按以下方式更改查询:

public function assigned()
{
    // @todo Please modify the following code to remove attributes that should not be searched.
    $criteria = new CDbCriteria;
    $criteria->join = "LEFT JOIN `tbl_user_tile` AS `pr` ON pr.tile_id = t.tile_id";
    $criteria->condition = "pr.tile_id IS NULL";

    $criteria->compare('deleted_by',$this->deleted_by,true);
    $criteria->compare('deleted_date',$this->deleted_date,true);

    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
    ));
}
希望这有帮助。如果有任何问题,请告诉我