繁体   English   中英

使用另一个表的列中的值更新表的列

[英]Update table's column with values from another table's column

我有一个带有随机名称的表(以及一个ID作为主键):

CREATE TABLE `people` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL,
  PRIMARY KEY (`id`)
);

我在其中插入了100个随机名称及其ID。 我也有另一个带有其他名称的表:

CREATE TABLE `names` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL,
  PRIMARY KEY (`id`)
);

该表还具有100个(不同的)随机名称及其ID。 我想更新的列name表的people与来自塔的名字name表的names

我显然必须使用UPDATESET但是在大多数情况下,我看到人们也在使用INNER JOIN 就个人而言,我想知道是否有更简单的方法(不使用INNER JOIN )来实现,而我想念它了吗?

具有内部联接的更新,例如:

update people
inner join names on people.id = names.id 
set people.name = names.name

最简单,也更清晰,紧凑和表达力强。

其他方法通常需要根据where条件进行子选择或隐式联接。 在一种情况下,查询的语气更多,而在第二种情况下,查询更混乱,性能通常更低。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM