Как правильно использовать UNION ALL и order by?

174
01 декабря 2019, 22:50

Есть несколько запросов, которые пытаюсь объединить:

          SELECT 'object1', MessageNo, _Order FROM _Object1Changes WHERE MessageNo=0 AND Node='33' order by _Order desc  LIMIT 1
UNION ALL SELECT 'object2', MessageNo, _Order FROM _Object2Changes WHERE MessageNo=0 AND Node='33' order by _Order desc  LIMIT 1
UNION ALL SELECT 'object3', MessageNo, _Order FROM _Object3Changes WHERE MessageNo=0 AND Node='33' order by _Order desc  LIMIT 1
UNION ALL SELECT 'object4', MessageNo, _Order FROM _Object4Changes WHERE MessageNo=0 AND Node='33' order by _Order desc  LIMIT 1;

Error Code: 1221. Incorrect usage of UNION and ORDER BY

Или пробую так:

          SELECT 'object1', MessageNo, MIN(_Order) FROM _Object1Changes WHERE MessageNo=0 AND Node='33' LIMIT 1
UNION ALL SELECT 'object2', MessageNo, MIN(_Order) FROM _Object2Changes WHERE MessageNo=0 AND Node='33'  LIMIT 1
UNION ALL SELECT 'object3', MessageNo, MIN(_Order) FROM _Object3Changes WHERE MessageNo=0 AND Node='33'LIMIT 1
UNION ALL SELECT 'object4', MessageNo, MIN(_Order) FROM _Object4Changes WHERE MessageNo=0 AND Node='33' LIMIT 1;

Получаю таблицу с одной записью, 'object1', null, null. Цель получить результат из нескольких таблиц, где из каждой таблицы берет запись с минимальным значением _Order и Node='33'

Как это можно исправить?

Answer 1

В главе документации UNION Syntax:

To apply ORDER BY or LIMIT to an individual SELECT, place the clause inside the parentheses that enclose the SELECT

Заключите отдельные подзапросы в скобки:

(SELECT a FROM t1 WHERE a=10 AND B=1 ORDER BY a LIMIT 10)
UNION
(SELECT a FROM t2 WHERE a=11 AND B=2 ORDER BY a LIMIT 10);
READ ALSO
Base64 in XSL from JSON

Base64 in XSL from JSON

Подскажите есть необходимость вставить изображение base64 в xslв поле /data/IMAGE"/ хранится изображение в base64 Как использовать это изображение из базы?...

191
Прокрутка по оси x [закрыт]

Прокрутка по оси x [закрыт]

Можно ли при помощи CSS сделать ось X для body основной при прокрутке?

139
AngularJS - ui - carousel

AngularJS - ui - carousel

Пытаюсь реализовать карусель на ангулахJSНо что-то идет не так

137
Javascript - заполнение пунктов списка <select>

Javascript - заполнение пунктов списка <select>

Являясь новичком в программировании столкнулся с задачей: есть функция, которая генерирует случайное число от 0 до 100 var val = Mathround(Math

121