2013-05-21 42 views
-1

我想準備下面的SQL查詢,但不幸的是它沒有工作。在使用過程模型Yii sql的生成

select course.course_name, enroll.start_date from dp_courses course LEFT OUTER JOIN dp_enroll enroll ON course.id = enroll.course_id and enroll.student_id=3 

$criteria=new CDbCriteria(array(
      'order'=>'update_time DESC', 
      'with'=> array('enroll'), 
     )); 
    $criteria->alias = 'course'; 
    $criteria->together=true; 
    $criteria->join='LEFT OUTER JOIN dp_enroll ON dp_enroll.course_id=course.id and dp_enroll.student_id='. Yii::app()->user->id; 
      //$criteria->condition='dp_enroll.student_id='. Yii::app()->user->id; 

關係是:

public function relations() { 
    return array(
        'enroll'=> array(self::HAS_MANY, 'Enroll', 'course_id'), 
        'author' => array(self::BELONGS_TO, 'YumProfile', 'author_id'),  ); } 

但由此產生的SQL查詢我想要什麼

LEFT OUTER JOIN dp_enroll enroll ON course.id = enroll.course_id **and** enroll.student_id=3 

兩個屬性連接表與操作

+1

什麼意思_「沒有工作」 _? – Kai

+0

如果你不明白這個問題,那麼它不意味着你降級。我想要生成片段上方的SQL行1。在cdbCriteria的幫助下。 –

+1

這不能回答我的問題。我不是證明我會加我-1的低調選民。 – Kai

回答

1

​​。在你的例子中,Yii不知道複合連接。如果你想加入這個樣子,你必須定義複合鍵的關係,instad course_id與數組定義它就像在文檔中闡明:

array('fk_c1'=>'pk_c1','fk_c2'=>'pk_c2')