基于 ID 匹配从一个表更新到另一个表的 SQL 查询
在本文中,我们将看到如何根据 ID 匹配从一个表更新到另一个表。我们可以使用 SQL 中的 UPDATE 语句更新表。 update 语句后面总是跟 SET 命令。 SET 命令用于指定表中需要更新哪些列和值。
更新语法:
UPDATE table_name
SET column_name = value
WHERE condition;
要执行上述函数,我们可以将列名设置为与其他表中存在的数据相同,并且在 WHERE 子句的条件下,我们可以匹配 ID。
现在,对于演示,请按照以下步骤操作:
第一步:创建数据库
我们可以使用以下命令创建一个名为 geeks 的数据库。
询问:
CREATE DATABASE geeks;
第二步:使用数据库
使用以下 SQL 语句将数据库上下文切换到极客:
询问:
USE geeks;
第三步:表定义
我们的极客数据库中有两个名为“demo_table1”和“demo_table2”的表。
查询(demo_table1):
CREATE TABLE demo_table1(
ID int,
NAME VARCHAR(20),
AGE INT,
CITY VARCHAR(20) );
查询(demo_table2):
CREATE TABLE demo_table2(
ID int,
NAME VARCHAR(20),
AGE int);
第 4 步:将数据插入表中
查询(demo_table1):
INSERT INTO demo_table1 VALUES
(1,'Romy',23,'Delhi'),
(2,'Rahul',23,'Delhi'),
(3,'Nikhil',24,'Punjab'),
(4,'Ranvir',23,'Punjab'),
(5,'Samiksha',23,'Banglore'),
(6,'Ashtha',24,'Banglore'),
(7,'Tannu',30,'Patna'),
(8,'Girish',30,'Patna'),
(9,'Ram', 20 , 'Patna'),
(10,'Raj', 12, 'Delhi');
查询(demo_table2):
INSERT INTO demo_table2 VALUES
(3,'Fanny',25 ),
(7,'Prem', 30),
(1,'Preeti',21),
(4,'Samita',32);
第五步:查看内容
执行以下查询以查看表的内容
查询(demo_table1):
SELECT * FROM demo_table1;
输出:
查询(demo_table2):
SELECT * FROM demo_table2;
第 6 步:根据 ID 匹配从 demo_table2 更新 demo_table1 数据
为了演示,根据 ID 匹配更新 demo_table2 中 demo_table1 的所有字段。如果两个表具有相同的列名,我们可以使用语法“ table_name.column_name ”来编写列名以避免混淆。
例如:
demo_table1 和 demo_table 2 都有 NAME 列。
- demo_table1.ID :指定 demo_table1 的 ID 列
- demo_table2.ID:指定demo_table2的ID列
询问:
UPDATE demo_table1
SET demo_table1.NAME=demo_table2.NAME,
demo_table1.AGE=demo_table2.AGE
FROM demo_table1, demo_table2
WHERE demo_table1.ID=demo_table2.ID;
再次查看 demo_table1 的内容,可以看到更新后的表。
输出:
我们可以看到内容现在根据 demo_table2 的 ID 值更新。