mysql更新表列,具有来自同一个表的多个值

时间:2015-01-26 14:57:54

标签: mysql sql-update

我有一个包含列的mysql表:customer,dateOrder。 一个客户可以在多个日期订购。我想为每个客户添加一个包含最远日期顺序的新列。到目前为止我试过这个:

UPDATE mytable  
   SET MINDATE = (SELECT min(DATEORDER) 
                    FROM (SELECT * 
                            FROM mytable 
                           GROUP 
                              BY CUSTOMER
                          ) tblTmp
                 )

,其中tblTmp是一个临时表;问题是它为我的所有客户带来了相同的日期(表中最远的日期)。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

使用JOIN将原始表与子查询匹配:

UPDATE mytable AS t1
JOIN (SELECT customer, MIN(dateorder) AS mindate
      FROM mytable
      GROUP BY customer) AS t2 ON t1.customer = t2.customer
SET t1.mindate = t2.mindate