我有一个带有随机名称的表(以及一个 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。我想使用表 names
的列 name
中的名称更新表 people
的列 name
。
我显然必须使用UPDATE
和SET
,但在大多数情况下,我看到人们也在使用INNER JOIN
。就我个人而言,我想知道是否有更简单的方法来做到这一点(不使用INNER JOIN
),而我错过了它?
最佳答案
使用内部联接进行更新,例如:
update people
inner join names on people.id = names.id
set people.name = names.name
最简单,也更清晰、紧凑和富有表现力。
其他方法通常需要基于 where 条件进行子选择或隐式连接。在一种情况下,查询更加冗长,而在第二种情况下,查询更加困惑,而且性能通常较低。
关于mysql - 使用另一个表的列中的值更新表的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49320494/