MySQL UPDATE只有WHERE max()

时间:2013-11-14 19:27:34

标签: mysql sql sql-update max where

我希望从我的Table_A更新我的Table_B的值,其中id匹配,Table_A.col1值最大。

Table_A视为两列B_idcol1Table_B有两列idcol1

UPDATE Table_A, Table_B
SET Table_B.col1 = Table_A.col1
WHERE  Table_B.id = Table_A.B_id
--WHERE Table_A.col1 is maximal

我知道我的查询的最后一行不正确,但我无法弄清楚如何在这里使用MAX()。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

UPDATE Table_B AS b
  JOIN ( SELECT B_id, MAX(col1) AS max_col1
         FROM Table_A
         GROUP BY B_id
       ) AS a
    ON b.id = a.B_id
SET b.col1 = a.max_col1 ;

答案 1 :(得分:0)

AND TableB.col1 = (select MAX(col1) from TableB)

(介意AND而不是WHERE)