Обновить строку с maxdate, где задан id из select и maxdate из select - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть оператор выбора, который возвращает набор идентификаторов и максимальную дату.Теперь я хочу обновить performance_date в таблице счетов с указанным значением maxdate, в котором указаны идентификаторы указанных счетов.

Select invoices.id, max(invoicepositions.performance_date) as maxdate
from invoices
inner join invoicepositions on invoices.id = invoicepositions.invoice_id
where invoices.performance_date IS NULL
group by invoices.id

(Как) это возможно с MySQL?

1 Ответ

0 голосов
/ 24 ноября 2018

Вы можете использовать текущий запрос SELECT в качестве производной таблицы и Join в таблице invoices, используя id, а затем обновить.

UPDATE invoices AS i 
JOIN
(
  Select invoices.id, max(invoicepositions.performance_date) as maxdate
  from invoices
  inner join invoicepositions on invoices.id = invoicepositions.invoice_id
  where invoices.performance_date IS NULL
  group by invoices.id
) AS dt 
  ON dt.id = i.id 
SET i.performance_date = dt.maxdate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...