mysql用同一个表中的多个值更新表列

标签 mysql sql-update

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

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

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

最佳答案

使用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

关于mysql用同一个表中的多个值更新表列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28152635/

相关文章:

mysql - 实体空间连接到同一网站中的 mySQL 和 Access

mysql - 使用 RMySQL、R 和 MySQL 连接到数据库

MySQL:如何获得前 10 名和剩下的?

mysql - SQL - 更新 select 语句中的记录

mysql - 在 MySQL 中一次更新多个表

xml - 使用 UPDATEXML 更新 Oracle 中的 XML

php - 在一个查询中进行选择和更新

php - 为什么 mysql 数据库中的图像显示为损坏?

mysql - Qt isOpen 方法 false 值 MySQL

mysql - 使用带有通配符的 UPDATE 和 REPLACE