我如何编写查询

SELECT *
  FROM doc_docs dd
  JOIN doc_access da
    ON dd.id=da.doc_id
   AND da.user_id=7

CDbCriteria语法?

最佳答案

实际上,您不能完全写出来,因为您必须将条件应用于ActiveRecord模型才能获取主表,但是假设您具有DocDocs模型,则可以这样进行:

$oDBC = new CDbCriteria();
$oDBC->join = 'LEFT JOIN doc_access a ON t.id = a.doc_id and a.user_id = 7';

$aRecords = DocDocs::model()->findAll($oDBC);

如果为DocDocs模型提供doc_access关系可能会容易得多,但是您不必使用dbcriteria:
class DocDocs extends CActiveRecord
{
   ...

   public function relations()
   {
      return array('access' => array(self::HAS_MANY, 'DocAccess', 'doc_id');
   }

   ...
}

$oDocDocs = new DocDocs;
$oDocDocs->id = 7;
$aRecords = $oDocDocs->access;

应该给你一个很好的主意,如何开始...

关于php - Yii CDbCriteria加入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4983864/

10-10 03:04