我是 Yii 的新手,我有类似的东西:
$criteria = new CDbCriteria();
...
...
$criteria->alias = 'l';
$criteria->join = 'LEFT JOIN (SELECT DISTINCT nip as tab_nip FROM licenses UNION SELECT DISTINCT nip FROM orders) as tab ON (tab.tab_nip = l.nip)';
$criteria->join .= ' LEFT JOIN products p ON l.product_id=p.id';
$criteria->join .= ' LEFT JOIN sticky_notes sn ON l.last_sticky_note_id';
然后
self::model()->with('product')->findAll($criteria); // self it's model class for table with l alias
我得到了结果,但无法访问 tab.tab_nip。这是怎么回事?我不能用这个表达吗?我应该使用
Yii::app()->db->createCommand($sql)->queryAll();
?
感谢您的帮助:)
最佳答案
好的,我已经解决了。 我在模型类中添加了公共(public)属性 tap_nip,现在它可以按我想要的方式工作。
关于php - yii CDbCriteria 和 join 语句中的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43650666/