📜  基于 ID 匹配从一个表更新到另一个表的 SQL 查询

📅  最后修改于: 2022-05-13 01:54:25.366000             🧑  作者: Mango

基于 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 值更新。