我希望实现SQL中如下查询结果:
select a.,b. from table1 a,table2 b where a.id = b.id
a和b在yii中都是CActiveRecord,
a的relations中包含b:
‘b’=>array(self::HAS_ONE, ‘b’, ‘id’)
我希望实现SQL中如下查询结果:
select a.,b. from table1 a,table2 b where a.id = b.id
a和b在yii中都是CActiveRecord,
a的relations中包含b:
‘b’=>array(self::HAS_ONE, ‘b’, ‘id’)
你是想用left join吧?原sql应该是这样子吧
select * from a left join b on a.id = b.id
以下代码未经测试
$criteria = new CDbCriteria;
$criteria->with('b');
$criteria->join('left join b on a.id=b.id');
$models = a::model()->findAll($criteria);
查询的时候可以不这么麻烦,当显示的时候需要另外一个表的字段,可以自动关联的!
$model = A::model()->findAll();
输出b表的attr字段,我可以这样写:
$model->b->attr就可以了
你这样好像没有通过相同的字段进行关联?
巡洋艦 没有写全部代码 关键在 A 类中定义好 就是了
http://www.yiiframework.com/doc/guide/1.1/zh_cn/database.arr
这一章啥时候翻译完成啊~
不过已有的中文内容也基本上说明了 AR 怎么做多表查询。