根据另一个MySQL表的列更新一列

为此,您可以使用联接概念。让我们首先创建一个表-

mysql> create table DemoTable1
   -> (
   -> Id int,
   -> Name varchar(10)
   -> );

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable1 values(100,'Bob');

使用select语句显示表中的所有记录-

mysql> select * from DemoTable1;

这将产生以下输出-

+------+------+
|   Id | Name |
+------+------+
|  100 | Bob  |
+------+------+
1 row in set (0.00 sec)

这是创建第二个表的查询-

mysql> create table DemoTable2
   -> (
   -> Id int,
   -> FirstName varchar(10)
   -> );

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable2 values(100,'Adam');

使用select语句显示表中的所有记录-

mysql> select * from DemoTable2;

这将产生以下输出-

+------+-----------+
| Id   | FirstName |
+------+-----------+
| 100  | Adam      |
+------+-----------+
1 row in set (0.00 sec)

这是基于另一个MySQL表的列更新列的查询-

mysql> update DemoTable1
   -> join DemoTable2 on DemoTable1.Id=DemoTable2.Id
   -> set DemoTable1.Name=DemoTable2.FirstName;
Rows matched: 1 Changed: 1 Warnings: 0

让我们检查具有更新值的第一个表的记录-

mysql> select * from DemoTable1;

这将产生以下输出-

+------+------+
| Id   | Name |
+------+------+
| 100  | Adam |
+------+------+
1 row in set (0.00 sec)