2014-03-04 68 views
0

我正在開發一個User可以Answer某些Questions的遊戲。 我想創建一個控制器動作來返回一個QuestionUser還沒有回答(A Question沒有任何與登錄User相關的Answer)。選擇在另一個表中沒有關係的行

我的代碼嘗試無法正常工作。

  • 我發現了大約mysql命令WHERE NOT EXISTS,我認爲它可以做到這一點,但我不知道如何在Yii Framework使用它。

數據庫:

enter image description here


控制器動作:(工作不正常)

$criteria=new CDbCriteria; 
$criteria->with=array('answers'=>array('condition'=>'user_id='.Yii::app()->user->id)); 
$criteria->having='count(answers.id)=0'; 
$model=Question::model()->findAll($criteria); 

回答

0

我發現如何在Yii Documentation上搜索。


代碼:

$sql = 'SELECT * FROM question WHERE NOT EXISTS (SELECT * FROM answer WHERE answer.user_id='.Yii::app()->user->id.' AND answer.question_id=question.id);'; 
$question = Yii::app()->db->createCommand($sql)->setFetchMode(PDO::FETCH_OBJ)->queryRow(); 

信息:

setFetchMode(PDO::FETCH_OBJ)用於返回dataobject,所以可以像$question->id訪問它。

相關問題