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