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 шт):

Автор решения: Akina
(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)
→ Ссылка