Задать вопрос
@EvgMul

Как выбрать последнее вхождение, удовлетворяющее запросу?

Здравствуйте, подскажите пожалуйста, как решить следующую проблему.
Есть вот такой запрос:
UPDATE
    sales as s
    join payments_parts pp on pp.FK_sale = s.ID
    join payments pay ON pp.FK_payment = pay.id
SET s.plan_payment_date = pay.payment_date
WHERE s.ID = pp.FK_sale and pay.ID = pp.FK_payment;


Проблема в том, что в таблице payments может быть несколько строк, удовлетворяющих запросу и в результат попадает первая. Мне нужно, чтобы попадала последняя, а в идеале по максимальному значению поля pay.payment_date.
Подскажите пожалуйста, как можно это реализовать.
Заранее благодарен всем отозвавшимся.
  • Вопрос задан
  • 71 просмотр
Подписаться 1 Простой Комментировать
Решение пользователя EvgMul К ответам на вопрос (2)
@EvgMul Автор вопроса
Если кому-то когда-то будет полезно, то вот запрос, удовлетворяющий условию.
UPDATE sales AS s
JOIN ( SELECT pp.FK_sale, MAX(pay.payment_date) payment_date 
       FROM payments_parts pp
       JOIN payments pay ON pp.FK_payment = pay.id
       GROUP BY pp.FK_sale) p ON p.FK_sale = s.ID
SET s.plan_payment_date = p.payment_date;
Ответ написан
Комментировать