air
Новичок
Сортировка по подчиненной таблице. Помогите написать запрос.
Коллеги помогите написать корректный запрос.
Ситуация следующая, есть две таблицы, условно, главная таблица DEVICE и таблица с параметрами DEVICE_PARAMS. Отношение DEVICE 1:N DEVICE_PARAMS.
Цель отсортировать записи в таблице DEVICE по какому либо из параметров таблицы Device_params.
DEVICE состоит из device_id, device_name.
DEVICE_PARAMS из device_id, device_param_id, device_param_name, device_param_value.
Выборка всех устройств и параметрами выглядит так.
Select * from DEVICE a, DEVICE_PARAMS b where a.device_id = b.device_id order by device_id;
Как отсортировать записи в DEVICE по значению поля DEVICE_PARAMS.device_param_value для параметра device_param_name, т.е. отобрать устройства с максимальным значением определенного параметра? Что самое сложное для меня, чтобы в результирующем запросе осталось сортировка по device_id, иначе параметры перемешаются в кучу
Перепробовал массу вариантов, но все их тут писать на буду т.к. это все они ни на шаг не приблизили меня к цели. У меня цель сделать это одним запросом к базе. На худой конец можно конечно сделать двумя запросами (уже в коде php), но это получится по запросу на каждую запись, что скажется на производительности и придется прикручвать кеширование. Может есть вариант обойтись малой кровью?
Коллеги помогите написать корректный запрос.
Ситуация следующая, есть две таблицы, условно, главная таблица DEVICE и таблица с параметрами DEVICE_PARAMS. Отношение DEVICE 1:N DEVICE_PARAMS.
Цель отсортировать записи в таблице DEVICE по какому либо из параметров таблицы Device_params.
DEVICE состоит из device_id, device_name.
DEVICE_PARAMS из device_id, device_param_id, device_param_name, device_param_value.
Выборка всех устройств и параметрами выглядит так.
Select * from DEVICE a, DEVICE_PARAMS b where a.device_id = b.device_id order by device_id;
Как отсортировать записи в DEVICE по значению поля DEVICE_PARAMS.device_param_value для параметра device_param_name, т.е. отобрать устройства с максимальным значением определенного параметра? Что самое сложное для меня, чтобы в результирующем запросе осталось сортировка по device_id, иначе параметры перемешаются в кучу

Перепробовал массу вариантов, но все их тут писать на буду т.к. это все они ни на шаг не приблизили меня к цели. У меня цель сделать это одним запросом к базе. На худой конец можно конечно сделать двумя запросами (уже в коде php), но это получится по запросу на каждую запись, что скажется на производительности и придется прикручвать кеширование. Может есть вариант обойтись малой кровью?