使用另一个表中的值更新MySQL表?
我们可以借助内部联接来更新另一个表。让我们创建两个表。
建立表格
mysql> CREATE table tblFirst-> (
-> id int,
-> name varchar(100)
-> );
插入记录
mysql> INSERT into tblFirst values(1,'John');mysql> INSERT into tblFirst values(2,'Bob');
mysql> INSERT into tblFirst values(3,'David');
显示所有记录
mysql> SELECT * from tblFirst;
以下是输出
+------+-------+| id | name |
+------+-------+
| 1 | John |
| 2 | Bob |
| 3 | David |
+------+-------+
3 rows in set (0.00 sec)
创建第二张表
mysql> CREATE table UpdTable-> (
-> IncId int auto_increment,
-> primary key(IncId),
-> id int,
-> name varchar(100)
-> );
插入记录
mysql> INSERT into UpdTable(id,name) values(1,'Taylor');mysql> INSERT into UpdTable(id,name) values(2,'jason');
mysql> INSERT into UpdTable(id,name) values(3,'carol');
mysql> INSERT into UpdTable(id,name) values(4,'john');
显示所有记录
mysql> SELECT * from UpdTable;
以下是输出
mysql> SELECT *from UpdTable;+-------+------+--------+
| IncId | id | name |
+-------+------+--------+
| 1 | 1 | Taylor |
| 2 | 2 | jason |
| 3 | 3 | carol |
| 4 | 4 | john |
+-------+------+--------+
4 rows in set (0.00 sec)
查看上面的输出,姓氏与第一个表记录匹配。现在,我将编写UPDATE查询-
mysql> UPDATE UpdTable-> inner join tblFirst ON (UpdTable.name = tblFirst.name)
-> SET UpdTable.id = tblFirst.id;
Rows matched: 1 Changed: 1 Warnings: 0
我们更新了最后一条记录,如下所示:
查询是
mysql> SELECT * from UpdTable;
以下是输出
+-------+------+--------+| IncId | id | name |
+-------+------+--------+
| 1 | 1 | Taylor |
| 2 | 2 | jason |
| 3 | 3 | carol |
| 4 | 1 | john |
+-------+------+--------+
4 rows in set (0.00 sec)
查看示例输出。ID已更新,它是4,但现在是1。
以上是 使用另一个表中的值更新MySQL表? 的全部内容, 来源链接: utcz.com/z/317077.html