MYSQL эфиктивный запрос для выборки последних значений с разным типом
Помогите написать запрос оптимальный по скорости для поиска в бд MYSQL. Примерная структура таблицы:
id, type, value, time
Значения столбца type (1-10) Мне нужно сделать выборку из таблицы самых последних значений по полю time где type = 1 и type = 2 и type = 3. При этом я должен получить только самые последнии строки из БД где type будет 1, 2 и 3. В результате выполнения запросса должен получить 3 строки, в случае если записей с type = 2 к примеру нет, то получить только 2 строки где type = 1 и 2.
Запрос SELECT * FROM table WHERE type = 1 ORDER BY time DESC LIMIT 1 мне полностью подходит, но я не хочу отправлять 3 таких запросса для каждого значения Type.
Подскажите с запроссом для решения моей задачи.
Ответы (1 шт):
(SELECT * FROM table WHERE type = 1 ORDER BY time DESC LIMIT 1)
UNION ALL
(SELECT * FROM table WHERE type = 2 ORDER BY time DESC LIMIT 1)
UNION ALL
(SELECT * FROM table WHERE type = 3 ORDER BY time DESC LIMIT 1)