我试图在表之间传输一些数据."NEW"表可以包含多个数据条目,这些条目最初并不意味着"OLD"表中有多个条目.我想从'OLD'表中获取数据并将其复制到新表中,其中NEW.ID是最低的,其中new.OtherID = old.OtherID,基本上是每组NextID的MIN(ID)等于彼此.
'新'表
ID | OtherID | Data
1 1 NULL
2 1 NULL
3 2 NULL
4 3 NULL
5 3 NULL
Run Code Online (Sandbox Code Playgroud)
'旧'
OtherID | Data <br>
1 data1
2 data2
3 data3
4 data4
5 data5
Run Code Online (Sandbox Code Playgroud)
更新后的"新"表中的预期结果:
ID | OtherID | Data <br>
1 1 data1
2 1 NULL
3 2 data2
4 3 data3
5 3 NULL
Run Code Online (Sandbox Code Playgroud)
等等
谢谢!
这就是你如何在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
Run Code Online (Sandbox Code Playgroud)