我正在尝试在表之间传输一些数据。 “NEW”表可以包含多个数据条目,这些数据本来并不意味着在“OLD”表中具有多个条目。我想从“OLD”表中获取数据并将其复制到新表中,其中NEW.ID是最低的位置,其中new.OtherID = old.OtherID,基本上每组OtherID的MIN(ID)等于彼此。
“NEW”表
ID | OtherID | Data
1 1 NULL
2 1 NULL
3 2 NULL
4 3 NULL
5 3 NULL
'老的'
OtherID | Data <br>
1 data1
2 data2
3 data3
4 data4
5 data5
更新的“NEW”表上的期望结果:
ID | OtherID | Data <br>
1 1 data1
2 1 NULL
3 2 data2
4 3 data3
5 3 NULL
等等
谢谢!
最佳答案
这是在MySQL中可以将INNER JOIN与UPDATE结合使用的方法:
UPDATE NEW n
INNER JOIN (
SELECT
OtherID,
MIN(ID) AS ID
FROM NEW
GROUP BY OtherID
) m ON n.ID = m.ID
INNER JOIN OLD o ON n.OtherID = o.OtherID
SET n.Data = o.Data