【问题标题】:Yii CDbCriteria JoinYii CDbCriteria 加入
【发布时间】:2023-04-01 21:39:01
【问题描述】:

如何编写查询

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

使用CDbCriteria 语法?

【问题讨论】:

  • 也许你会分享解决方案?或者如果它是正确的解决方案,请接受答案?
  • 你应该分享你的答案来帮助别人。!!!

标签: php sql yii criteria


【解决方案1】:

你实际上不能完全写出来,因为你必须将条件应用于一个 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;

应该给你一个相当好的想法如何开始......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    相关资源
    最近更新 更多