我有一个 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/