首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >YII CActiveRecord连接运算符

YII CActiveRecord连接运算符
EN

Stack Overflow用户
提问于 2014-04-03 16:16:36
回答 1查看 370关注 0票数 0

我现在还在学习YII on blog教程。

我尝试使用CAtiveRecord连接许多表:

代码语言:javascript
复制
   $q= Questions::model()->searchText($text);

    $dataProvider=new CActiveDataProvider($q,array(
      'criteria'=>array(
            'with'=>array(
                'Ans'=>array(
                    'scopes'=>array(
                        'searchAns'=>$text,
                    ),
                  )

                )
            ),
            'together' => true,
       ),
       'pagination' => array('pageSize' => 10,),
    ));

但我的结果是:

代码语言:javascript
复制
   SELECT * FROM `Q` `t` 
       LEFT OUTER JOIN `A` `ans` ON (`ans`.`q_id`=`t`.`id`) AND (ans.text LIKE :ycp2)
      WHERE (t.question LIKE :ycp0)  
   LIMIT 10

我需要我的MySQL查询如下:

代码语言:javascript
复制
Select * FROM 
   Table as A 
       left Join Table as B on A.id=B.id_parent 
   where A.status = 1 OR B.status=2

稍后编辑

1.定义了关系和作用域

EN

回答 1

Stack Overflow用户

发布于 2014-04-03 17:13:22

你应该在你的模型中定义relations,这样你就可以很容易地获得这样的数据。如果关系还不够,你必须使用CDbCriteria构建你的查询,或者在你的模型中选择时简单地添加条件。但在任何情况下,在进入DataProvider之前这样做都会更好。

或者在最坏的情况下,当你不知道该怎么做时,你可以使用命令生成器:

yii multiple inner joins

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22831676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档