碰巧 Yii 隐式地将 ID 排序添加到标准中。
注意代码中的这一行 $criteria->order ='t.id ASC';
我的源代码:
$criteria = new CDbCriteria;
$criteria->select = 't.id, order_id, was_before, became, t.created_at';
$criteria->addCondition('t.created_at >= \'' . $from . '\'');
$criteria->addCondition('t.created_at <= \'' . $to . '\'');
$criteria->alias ='t';
$criteria->with = [
'order' => [
'select' => 'm.id as b, m.status',
'condition' => 'm.status = ' . Order::STATUS_CANCELLED,
'alias' => 'm',
'with' => [
'packerRest' => [
'select'=> 'g.id as n',
'alias' => 'g'
]
]
],
];
$criteria->order ='t.id ASC';
标准转储:
结果错误:
如您所见,我没有添加按 ID 排序。Yii 以某种方式完成了它并打破了整个查询。
我已经准备好用纯 MySQL 重写它。
任何想法为什么会这样?