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

时间:2018-03-16 12:12:57

标签: mysql

我有一个包含随机名称的表(以及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的{​​{1}}列中的名称更新表people的列name

我显然必须使用namesUPDATE,但在大多数情况下,我看到人们也在使用SET。就个人而言,我想知道是否有更简单的方法(不使用INNER JOIN)并且我错过了它?

1 个答案:

答案 0 :(得分:0)

使用内部联接进行更新,例如:

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

最简单,也更清晰,更紧凑,更具表现力。

其他方法通常需要根据where条件进行subselect或隐式连接。在一种情况下,查询更具有verbouse,而在第二种情况下,查询更加困惑,而且性能往往较差。