У меня возникли проблемы с формулировкой SQL для этой ситуации: Представьте, что в любое время на дороге есть несколько транспортных средств, Каждое из этих поездок находится в таблице поездок. Каждое транспортное средство регулярно посылает обновления своего текущего местоположения (широта, долгота)Как выбрать из 2 таблиц и получить наибольшее значение из одной таблицы?
Есть 2 таблицы: current_position
идентификатор | trip_id | update_time | lat | lon
поездки
ID | Статус
current_position имеет несколько обновлений для каждой поездки
мне нужно, чтобы получить результаты, имеющие trip_id, широта, долгота
для каждой поездки, которая имеет статус = «ВОЖДЕНИЙ» и должна иметь последние значения от current_position
Последнее значение Я имею в виду наивысшее значение update_time. Когда я попробовал GROUP BY, я получил отличные результаты, но результаты были не всегда последней позицией. Кажется, я не могу комбинировать порядок с помощью update_time DESC с GROUP BY trip_id
Так что, если есть 300 поездок в настоящее время в ходе тогда будет 300 подзапросы в этом запросе? –
производительность не должна быть проблемой для 300 возвращенных записей. Попробуй и посмотри. – nycdan
DRapp делает хорошую точку. Вероятно, вы можете использовать Max (id) вместо Max (update_time) и получать лучшую производительность на больших таблицах. – nycdan