Объединеные запросы и сотрировка по дате (UNION + ORDER BY) ?

4helim

Новичок
Объединеные запросы и сотрировка по дате (UNION + ORDER BY) ?

SELECT id, price, DATE_FORMAT(date_of_placing, '%d/%m/%Y') AS publish_date
FROM table1
UNION
SELECT id, price, DATE_FORMAT(date_of_placing, '%d/%m/%Y') AS publish_date
FROM table2
UNION
SELECT id, price, DATE_FORMAT(date_of_placing, '%d/%m/%Y') AS publish_date
FROM table3

ORDER BY publish_date DESC

Проблема в следующем Если пытаюсь отсортеровать результаты по ДАТЕ то сортировка происходит по результатам каждой из таблиц но не общая сотрировка по результатам выборки из 3 таблиц
Если сортирую по price (ORDER BY price DESC) то сортировка работает как надо по общему результату выборки из 3 таблиц

Подскажите в чем проблема или это особенности сортировки по ДАТЕ? Мне нужно отсортеровать общий результат по 3 таблицам по ДАТЕ!
 

Апельсин

Оранжевое создание
нет никакой особенности сортировки по DATE, более того результат DATE_FORMAT() это всегда строка. Скорее всего как строки оно тебе и сортирует.
 

4helim

Новичок
Спасибо за подсказку
нужно было сортировать по оригиналу поля date_of_placing то есть вот так

SELECT id, price, date_of_placing, DATE_FORMAT(date_of_placing, '%d/%m/%Y') AS publish_date
FROM table1
UNION
SELECT id, price, date_of_placing, DATE_FORMAT(date_of_placing, '%d/%m/%Y') AS publish_date
FROM table2
UNION
SELECT id, price, date_of_placing, DATE_FORMAT(date_of_placing, '%d/%m/%Y') AS publish_date
FROM table3

ORDER BY date_of_placing DESC


Тема закрыта
 
Сверху