you_are_enot
@you_are_enot
Пограммист любитель

Как отсортировать данные по полю из другой таблицы?

У меня есть две таблицы: заказы(order) и поставки(supply) с связью O2M. Нужно отсортировать заказы по дате ближайшей поставки(expected_at).

Например: у заказа есть есть 3 поставки, мы выбираем ближайшую. То же самое делаем для других поставок. В конце, сортируем заказы.

Я пробовал такой вариант:
SELECT o.*, s.expected_at FROM order AS o
LEFT JOIN supply AS s ON o.id = s.order_id
ORDER BY expected_at ASC


Но в ответе приходят дубли заказов. Похоже, что это происходит из-за джоина с поставками.

639ac6ec05ad1288570796.png
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
iMedved2009
@iMedved2009
Не люблю людей
SELECT o.*, s.expected_at FROM order AS o
LEFT JOIN (select min(expected_at) as expected_at, order_id from supply group by order_id) AS s ON o.id = s.order_id
ORDER BY expected_at ASC
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы