Выборка из двух таблиц с UNION ALL и с сортировкой по id первой таблицы, то есть, остается порядок первой таблицы
Делаю выборку из двух таблиц при помощи UNION ALL. В первой таблице хранятся названия видов работ с ценами по умолчанию. Во второй - те же названия видов работ с ценами, но уже добавленные пользователями.
Таблицы:
CREATE TABLE `table1` (
`id` int(11) NOT NULL,
`vid` text NOT NULL,
`price` int(11) NOT NULL,
`izmer` varchar(255) NOT NULL,
`kategor` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `table2` (
`id` int(11) NOT NULL,
`UserID` int(11) NOT NULL,
`vid` text CHARACTER SET utf8 NOT NULL,
`price` int(11) NOT NULL,
`izmer` varchar(256) CHARACTER SET utf8 NOT NULL,
`kategor` varchar(256) CHARACTER SET utf8 NOT NULL,
`date` date NOT NULL,
`DayuDobro` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Вот пример запроса:
$sql = "SELECT vid, AVG(price) price, izmer FROM (SELECT vid, price, izmer FROM table1 where kategor = 'kategor1'
UNION ALL
SELECT vid, price, izmer FROM table2 where kategor = 'kategor1') AS subquery GROUP BY vid";
На выходе получаю список работ со средней ценой по каждому виду работ. Проблема в том, что сортировка происходит по полю 'vid' в алфавитном порядке и это 'ломает' список видов работ. Я бы хотел сортировать по id первой таблицы, то есть, чтоб порядок записей оставался таким, как в table1. Виды работ в table2 создаются динамически и периодически повторяются, поэтому и не получается отсортировать по id. Пожалуйста, помогите с этим вопросом. Спасибо.