YII如何实现多表查询

我希望实现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 怎么做多表查询。