我如何编写查询
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;
应该给你一个相当好的主意如何开始……