自己更新表MySQL

时间:2012-12-12 03:03:51

标签: mysql sql sql-update

我无法弄清楚如何使这个查询运行....我想更新表,以便依赖于uuid它抓住'last_updated'的最低值并更新'created_on'...我继续'不能指定目标表'虽然我不知道为什么= /它是递归问题吗?

UPDATE dlp.address AS t1
SET created_on = (SELECT MIN(last_updated) 
                  FROM dlp.address AS t2 
                  WHERE t1.addressuuid = t2.addressuuid);

2 个答案:

答案 0 :(得分:2)

UPDATE  dlp.address AS t1
        INNER JOIN 
        (
            SELECT  addressuuid, MIN(last_updated) minDate
            FROM    dlp.address
            GROUP BY addressuuid
        ) AS t2 
            ON t1.addressuuid = t2.addressuuid
SET     t1.created_on = t2.minDate

答案 1 :(得分:0)

您可以使用:

UPDATE dlp.address AS t1

  , (SELECT addressuuid, MIN(last_updated) AS minDate 
       FROM dlp.address GROUP BY addressuuid) AS t2

SET t1.created_on = t2.minDate 

WHERE t1.addressuuid = t2.addressuuid