mysql - 如何使用一个查询的结果来更新另一个表?

标签 mysql sql-update

我有一个包含许多表,每个都有一个create_date

我现在需要为 Parent 添加一个新列 create_date,并找到用于 Parent.create_dateMIN(Child.create_date)

我可以获得MIN create_date:

SELECT MIN(Child.create_date) FROM Child LEFT JOIN Parent USING(Parent.id) GROUP BY Parent.id

但是如何使用结果来更新 Parent.create_date

最佳答案

left joinupdate语句一起使用

UPDATE Parent p,
  (SELECT parent.id AS id, MIN(Child.create_date) AS new_date
  FROM Child LEFT JOIN Parent 
  ON Parent.id = Child.parent_id
  GROUP BY Parent.id
  ) AS my_table
SET p.create_date = my_table.new_date
WHERE p.id = my_table.id;

关于mysql - 如何使用一个查询的结果来更新另一个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26250738/

相关文章:

PHP PDO MySQL 事务代码结构

mysql select 查询不适用于通过用户变量设置的限制和偏移量

mysql - 根据天数过滤日期范围

mysql - 在 MySQL 中验证日期

mysql - 在jsp中更新mysql表中的行

sql - 在oracle中使用join更新表而不使用PK

mysql - 无法在 FROM 子句中指定更新目标表 - Mysql 5.7.10 -衍生合并不起作用

mysql - UPDATE with INNER JOIN 失败,但相关的 SELECT 语句有效

sql - 厚度在“xxx”之间时如何更新场安培

php - 为什么我的 PHP/MySQL 是插入而不是更新?