J'utilise unionAll()
et renvoie les données parfaitement, mais j'ai besoin d'ordernate les données et retourne toujours l'erreur parce que la colonne n'existe pas.Pourquoi une requête UNION ALL traite-t-elle la colonne ORDER externe comme inconnue?
$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)
);
Retour cette erreur:
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'date_event_start' in 'order clause'
Chaque fois que la rencontre des erreurs SQL, vous devriez commencer avec le débogage des requêtes SQL générées, et aussi les mettre dans votre question! Veuillez également mentionner le SGBD que vous utilisez. – ndm