我有以下表格
old_id | category_id
---------------------
45 | 3455
45 | 07072
38 | 0293
old_id | new_id
----------------
45 | 1023
38 | 1027
在第一个表中,主键是复合(old_id, category_id)
。每个old_id
可能有多个类别,您可以看到from old_id=45
。
如何使用相关的old_id
更新每个new_id
行?
我正在使用MySQL 5.5
答案 0 :(得分:1)
类似的东西:
update t1
set old_id = new_id
from t2
where t1.old_id = t2.old_id
答案 1 :(得分:1)
您可以在UPDATE
查询中加入这两个表。
试试这个:
UPDATE TableOld a
JOIN TableNew b ON a.old_id = b.old_id
SET a.old_id= b.new_id
答案 2 :(得分:0)
UPDATE tab1 T1 SET T1.old_id = (
SELECT T2.new_id FROM tab2 T2
WHERE t2.old_id = t1.old_id
);
然后您将 tab1 输出为
| OLD_ID | CATEGORY_ID |
|--------|-------------|
| 1023 | 3455 |
| 1023 | 07072 |
| 1027 | 0293 |
答案 3 :(得分:0)
试试这个
UPDATE TABLE1 JOIN TABLE2 ON
TABLE1.old_id = TABLE2.old_id
SET TABLE1.old_id = TABLE2.new_id
答案 4 :(得分:0)
这会
UPDATE Table1 a
JOIN Table2 b ON a.old_id = b.old_id
SET a.category_id= b.new_id