Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从另一个表更新表:使用内部联接和更新多个表之间的区别?_Mysql_Sql - Fatal编程技术网

Mysql 从另一个表更新表:使用内部联接和更新多个表之间的区别?

Mysql 从另一个表更新表:使用内部联接和更新多个表之间的区别?,mysql,sql,Mysql,Sql,我想用表2中的值更新表1列'num' 可能真的很基本。。但是我找不到使用 内部联接和在本场景中更新表x,y,其中xxxx 假设我有两张桌子: table1 name | num name1 1 name2 2 name3 3 table2 name | num name1 11 name2 22 name4 44 我想要的是: 表1: name | num name1 11 name2 22 name3 3 我可以通过跑步来达到这个目的 方法1: UPDATE tabl

我想用表2中的值更新表1列'num'

可能真的很基本。。但是我找不到使用
内部联接
在本场景中更新表x,y,其中xxxx

假设我有两张桌子:

table1 
name | num
name1  1
name2  2
name3  3

table2
name | num
name1  11
name2  22
name4  44
我想要的是:

表1:

name | num
name1  11
name2  22
name3  3
我可以通过跑步来达到这个目的

方法1:

UPDATE table1, table2
SET table1.num = table2.num
where table1.name = table2.name

方法2:

UPDATE table1
inner join table2 on table1.name = table2.name
SET table1.num = table2.num
我得到了同样的结果,我想知道我是否可以使用任何一个。。或者这两个查询之间有什么区别?? 我想我需要使用method1来更新这两个表。。
但是,如果我想在这种情况下只更新1个表,那么我使用哪个查询重要吗?

这两个查询在功能上是等效的——并且都是非标准SQL语法(即MySQL扩展)。他们也应该制定相同的执行计划

也就是说,我推荐使用
JOIN
的版本。在我看来,
JOIN
总是比逗号更可取