yii 为什么使用 CDbCriteria类,$criteria->join为什么查出来的数据还是一个表里面的?
程序员文章站
2022-06-13 12:37:30
...
这个是我在model文件里面写的一个方法。我想将一张表(t) 和 另一张表 c 做外连接(left join)。
public function pagination($limit, $condition, $order){
$criteria = new CDbCriteria();
$criteria->alias = 't';
$criteria->order = $order;
$criteria->select = 't.id, c.value';
$criteria->addCondition($condition);
$criteria->join = 'left join lp_site_conf as c on t.type=c.id';
$result['listInfo'] = YiiData($this->findAll($criteria));
$result['pageCount'] = $pages->getPageCount();
}
但是 现在查出来的数据是这样的
array(10) {
[0] => array(9) {
["id"] => string(2) "10"
["name"] => NULL
["type"] => NULL
["createuid"] => NULL
["createtime"] => NULL
["modifytime"] => NULL
["description1"] => NULL
["description2"] => NULL
["status"] => NULL
}
[1] => array(9) {
["id"] => string(1) "9"
["name"] => NULL
["type"] => NULL
["createuid"] => NULL
["createtime"] => NULL
["modifytime"] => NULL
["description1"] => NULL
["description2"] => NULL
["status"] => NULL
}
这些字段都是t表中的,根本没有leftjoin的表的字段,这是什么原因?
回复内容:
这个是我在model文件里面写的一个方法。我想将一张表(t) 和 另一张表 c 做外连接(left join)。
public function pagination($limit, $condition, $order){
$criteria = new CDbCriteria();
$criteria->alias = 't';
$criteria->order = $order;
$criteria->select = 't.id, c.value';
$criteria->addCondition($condition);
$criteria->join = 'left join lp_site_conf as c on t.type=c.id';
$result['listInfo'] = YiiData($this->findAll($criteria));
$result['pageCount'] = $pages->getPageCount();
}
但是 现在查出来的数据是这样的
array(10) {
[0] => array(9) {
["id"] => string(2) "10"
["name"] => NULL
["type"] => NULL
["createuid"] => NULL
["createtime"] => NULL
["modifytime"] => NULL
["description1"] => NULL
["description2"] => NULL
["status"] => NULL
}
[1] => array(9) {
["id"] => string(1) "9"
["name"] => NULL
["type"] => NULL
["createuid"] => NULL
["createtime"] => NULL
["modifytime"] => NULL
["description1"] => NULL
["description2"] => NULL
["status"] => NULL
}
这些字段都是t表中的,根本没有leftjoin的表的字段,这是什么原因?
我遇到了和你一样的问题,你是怎么解决的呢?
上一篇: C#编程获取客户端计算机硬件及系统信息功能代码案例分析
下一篇: 大数据开发面试题