mysql 使用来自同一 table 的多个值更新 table 列
mysql update table column with multiple values from same table
我有一个 mysql table 列:客户、日期订单。
一个客户可以有多个日期的订单。我想为每个客户添加一个包含最远日期订单的新列。到目前为止我试过这个:
UPDATE mytable
SET MINDATE = (SELECT min(DATEORDER)
FROM (SELECT *
FROM mytable
GROUP
BY CUSTOMER
) tblTmp
)
,其中 tblTmp 是临时的 table;问题是它为我的所有客户带来了相同的日期(table 中最远的日期)。有什么想法吗?
使用 JOIN
将原始 table 与子查询相匹配:
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 table 列:客户、日期订单。 一个客户可以有多个日期的订单。我想为每个客户添加一个包含最远日期订单的新列。到目前为止我试过这个:
UPDATE mytable
SET MINDATE = (SELECT min(DATEORDER)
FROM (SELECT *
FROM mytable
GROUP
BY CUSTOMER
) tblTmp
)
,其中 tblTmp 是临时的 table;问题是它为我的所有客户带来了相同的日期(table 中最远的日期)。有什么想法吗?
使用 JOIN
将原始 table 与子查询相匹配:
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