【发布时间】:2016-06-03 03:11:41
【问题描述】:
我正在使用unionAll() 并完美返回数据,但我需要对数据进行排序并始终返回错误,因为该列不存在。
$events = $this->Events
->find('available')
->where([
'Events.group_of_event_id IS NULL'
])
->select('Events.id')
->select('Events.name')
->select('Events.slug')
->select('Events.date_event_start')
->select([
'is_group' => 0
]);
$groups = $this->GroupOfEvents
->find('available')
->select('GroupOfEvents.id')
->select('GroupOfEvents.name')
->select('GroupOfEvents.slug')
->select('GroupOfEvents.date_event_start')
->select([
'is_group' => 1
]);
$limit = 10;
$page = 1;
if($this->request->query('limit'))
$limit = $this->request->query('limit');
if($this->request->query('page'))
$page = $this->request->query('page');
$offset = ($page - 1) * $limit;
$connection = ConnectionManager::get('default');
$union = $events->unionAll($groups)->epilog(
$connection
->newQuery()
->order(['date_event_start' => 'ASC'])
->limit($limit)
->offset($offset)
);
返回此错误:
错误:SQLSTATE[42S22]:未找到列:1054 'order 子句'中的未知列 'date_event_start'
【问题讨论】:
-
当遇到SQL错误时,你应该从调试生成的SQL查询开始,并将它们放在你的问题中!另外,请务必提及您正在使用的 DBMS。
标签: sql cakephp cakephp-3.0 query-builder union-all