[英]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
。
我显然必须使用UPDATE
和SET
但是在大多数情况下,我看到人们也在使用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.