如何使用另一个映射表更新数据库中列的值?(MySQL)
假设我有以下表格 表1 表2(映射表) 我试图实现的结果: 表1 。 .如何使用另一个映射表更新数据库中列的值?(MySQL),mysql,database,Mysql,Database,假设我有以下表格 表1 表2(映射表) 我试图实现的结果: 表1 。 . (也就是说,使用单个查询更新整个表,因为我有一个由数百万行组成的表) 我尝试在SQL中使用子查询,但似乎无法处理子查询返回多行的情况 提前感谢您可以使用内部联接查询 update table1 t1 join mapping_table t2 on t1.tag_id = t2.old_tag_id set t1.tag_id = t2.new_tag_id UPDATE table1 a INNER JOIN tabl
(也就是说,使用单个查询更新整个表,因为我有一个由数百万行组成的表) 我尝试在SQL中使用子查询,但似乎无法处理子查询返回多行的情况
提前感谢您可以使用
内部联接
查询
update table1 t1
join mapping_table t2 on t1.tag_id = t2.old_tag_id
set t1.tag_id = t2.new_tag_id
UPDATE table1 a
INNER JOIN table2 b
ON a.tag_id = b.old_tag_id
SET a.tag_id = b.new_tag_id
您可以使用
内部联接
查询
UPDATE table1 a
INNER JOIN table2 b
ON a.tag_id = b.old_tag_id
SET a.tag_id = b.new_tag_id
你能试试下面的查询吗
UPDATE Table1 t1
SET t1.tag_id = (SELECT t2.new_tag_id
FROM Table2 t2
WHERE t1.tag_id = t2.old_tag_id)
你能试试下面的查询吗
UPDATE Table1 t1
SET t1.tag_id = (SELECT t2.new_tag_id
FROM Table2 t2
WHERE t1.tag_id = t2.old_tag_id)
谢谢你@Fabio。它就像一个符咒。另外,你能提到一些你认为可以提高我查询技能的相关知识吗?这只是更新查询。其他问题呢?我根本不知道如何在更新中使用内部连接。我希望能够熟练地使用它们。Youncan可以参考手册,这里还有一个很好的连接视觉解释谢谢@Fabio。它就像一个符咒。另外,你能提到一些你认为可以提高我查询技能的相关知识吗?这只是更新查询。其他问题呢?我根本不知道如何在更新中使用内部连接。我希望能够熟练地使用它们。Youncan可以参考手册,这里还有一个很好的连接视觉解释
UPDATE Table1 t1
SET t1.tag_id = (SELECT t2.new_tag_id
FROM Table2 t2
WHERE t1.tag_id = t2.old_tag_id)