Mysql SQL在一个联接中更新多行

Mysql SQL在一个联接中更新多行,mysql,join,Mysql,Join,我有下列表格 old_id | category_id --------------------- 45 | 3455 45 | 07072 38 | 0293 old_id | new_id ---------------- 45 | 1023 38 | 1027 在第一个表中,主键是composite(旧id、类别id)。每个old\u id可能有多个类别,您可以从old\u id=45中看到 如何使用相关的新id更新每一旧id行 我

我有下列表格

old_id  | category_id
---------------------
45      | 3455
45      | 07072
38      | 0293

old_id  | new_id
----------------
45      | 1023
38      | 1027
在第一个表中,主键是composite
(旧id、类别id)
。每个
old\u id
可能有多个类别,您可以从old\u id=45中看到

如何使用相关的
新id
更新每一
旧id

我正在使用MySQL 5.5

然后您将得到tab1输出

| OLD_ID | CATEGORY_ID |
|--------|-------------|
|   1023 |        3455 |
|   1023 |       07072 |
|   1027 |        0293 |
诸如此类:

update t1 
set old_id = new_id
from t2
where t1.old_id = t2.old_id

您可以在
UPDATE
查询中联接这两个表

试试这个:

UPDATE TableOld a 
    JOIN TableNew b ON a.old_id = b.old_id
SET a.old_id= b.new_id
试试这个

UPDATE TABLE1 JOIN TABLE2 ON 
    TABLE1.old_id = TABLE2.old_id 
    SET TABLE1.old_id = TABLE2.new_id
会这样吗

UPDATE Table1 a 
    JOIN Table2 b ON a.old_id = b.old_id
    SET a.category_id= b.new_id

你能指定什么是“相关的新id”吗?为什么设置category\u id=new\u id?@IleshPatel:编辑了我的答案。
UPDATE Table1 a 
    JOIN Table2 b ON a.old_id = b.old_id
    SET a.category_id= b.new_id