SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 25.07.2016 01:34:30

Roman1984
Участник
Зарегистрирован: 20.07.2016
Сообщений: 7

Склеить 2 (и более) таблицы (через UNION) и отсортировать данные по дате

Добрый день, вроде бы стоит простая задача склеить таблицы через UNION или UNION ALL и отсортировать по дате, но что-то не получается. Пишу такой запрос на объединение календаря чемпионата и календаря кубка:

(
SELECT * FROM  `eng_cal1314` AS e WHERE  `e`.tour >25 AND  `e`.tour <30
)
UNION
(SELECT * FROM  `eng_cup1314` AS c WHERE  `c`.tour =999)
ORDER BY `date` desc

в результате получаю одну результирующую таблицу, в которой присутствуют все данные, но они не сортируются(перемешиваются) с другими данными по дате.
Помотреть результат запроса:  http://joxi.ru/nAyqza9UXJ9ZlA

Неактивен

 

#2 25.07.2016 09:23:08

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3721

Re: Склеить 2 (и более) таблицы (через UNION) и отсортировать данные по дате

В вашем примере строки отсортированы по убыванию даты. Не перемешиваются, так как год разный

Неактивен

 

#3 25.07.2016 10:55:46

Roman1984
Участник
Зарегистрирован: 20.07.2016
Сообщений: 7

Re: Склеить 2 (и более) таблицы (через UNION) и отсортировать данные по дате

rgbeast написал:

В вашем примере строки отсортированы по убыванию даты. Не перемешиваются, так как год разный

блин, недосмотрел... самое интересное, что я всё таки сумел отсортировать изменив ORDER BY так:

ORDER BY Right(`date`, 4) desc, Mid(`date`, 3,2) desc, Left(`date`, 2) desc

big_smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson