У меня есть две таблицы, которые полностью различаются по полю и данным, но я хочу отсортировать данные из обеих таблиц. У меня есть предложение union union для этой цели, и мне удастся получить набор результатов, но не удается сортировать данные. Я пробовал так много трюков, но терпел неудачу.Сортировка набора результатов объединения двух таблиц в mysql
Мой запрос -
(SELECT amount FROM `purchase` order by amount desc limit 0, 10)
UNION
(SELECT total_price as amount from `item` order by total_price desc limit 0, 10) order by amount desc
результат -
-----------
amount
-----------
9999.000
9998.000
999.000
9730
7750
7700
7600
6881
20000
13400
10250
10000
В результате в порядке, но вы можете видеть, что данные не сортировать по количеству, сортируется по таблице. Но я хочу наивысшего уровня в верхней части 20000 и так далее. Может ли кто-нибудь сказать мне, какое изменение я должен внести в запрос для достижения результата.
Прежде чем идти дальше, не могли бы вы объяснить мне.? что это + 0 делает здесь и как это влияет на мои данные? @ InoS Heo –
@ThePlusProgrammer Это общий трюк в MySQL (или PHP), который не форсирует строгий тип данных. Использование функции 'CAST()' является стандартным способом преобразования типа данных. –
сумма - тип varchar и total_price - тип int –