Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用maxdate更新行,其中提供了select中的id和select中的maxdate_Mysql_Sql Update - Fatal编程技术网

Mysql 使用maxdate更新行,其中提供了select中的id和select中的maxdate

Mysql 使用maxdate更新行,其中提供了select中的id和select中的maxdate,mysql,sql-update,Mysql,Sql Update,我有一个select语句,它返回一组ID和一个maxdate。现在,我想用给定的maxdate更新invoices表中的performance_date,其中给定的invoices ID为 Select invoices.id, max(invoicepositions.performance_date) as maxdate from invoices inner join invoicepositions on invoices.id = invoicepositions.invoice_i

我有一个select语句,它返回一组ID和一个maxdate。现在,我想用给定的maxdate更新invoices表中的performance_date,其中给定的invoices ID为

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中实现这一点?

您可以使用当前的
选择
查询作为一个查询,并使用
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