Задать вопрос
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
  • Вопрос задан
  • 54 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • QA Studio
    Инженер по тестированию: с нуля до Junior+
    4 месяца
    Далее
  • Merion Academy
    Основы реляционных баз данных SQL
    1 месяц
    Далее
  • Учебный центр IBS
    ARC-PRG-001 Архитектор ПО. Путь к мастерству в проектировании систем
    2 недели
    Далее
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Ваш ответ на вопрос

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

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