我有一个包含列的mysql表:customer,dateOrder。 一个客户可以在多个日期订购。我想为每个客户添加一个包含最远日期顺序的新列。到目前为止我试过这个:
UPDATE mytable
SET MINDATE = (SELECT min(DATEORDER)
FROM (SELECT *
FROM mytable
GROUP
BY CUSTOMER
) tblTmp
)
,其中tblTmp是一个临时表;问题是它为我的所有客户带来了相同的日期(表中最远的日期)。有什么想法吗?
答案 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