📜  如何在 SQL 中查询两个表的重复值?

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

如何在 SQL 中查询两个表的重复值?

在本文中,我们将了解如何编写 SQL 查询以从两个表中获取重复值。

我们可以使用两种方法执行给定的任务:

  1. 使用内部联接。
  2. 使用 WHERE 子句

现在,对于演示,请按照以下步骤操作:

第一步:创建数据库

我们可以使用以下命令创建一个名为 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
(11,'Romy',23,'Delhi'),
(23,'Rahul',23,'Delhi'),
(31,'Nikhil',24,'Punjab'),
(46,'Ranvir',23,'Punjab'),
(52,'Samiksha',23,'Banglore'),
(61,'Ashtha',24,'Banglore'),
(77,'Tannu',30,'Patna'),
(89,'Girish',30,'Patna');

查询(demo_table2):

INSERT INTO demo_table2 VALUES
(31,'Fanny',25 ),
(77,'Prem', 30),
(15,'Preeti',21),
(46,'Samita',32),
(09,'Rajan',45);

第五步:查看内容

执行以下查询以查看表的内容

查询(demo_table1):

SELECT * FROM demo_table1;

输出:

查询(demo_table2):

SELECT * FROM demo_table2;

输出:

第 6 步:从两个表中获取重复项的 SQL 查询

方法一:

INNER JOIN:用于查询两个表以获取两个表中具有匹配值的记录的关键字。

句法:

SELECT Column_name
FROM table1 INNER JOIN
table2 ON condition;

为了演示,我们将编写 SQL 查询,该查询将从两个表中返回重复的 ID 值

询问:

SELECT demo_table1.ID
FROM demo_table1
INNER JOIN demo_table2
ON demo_table1.ID=demo_table2.ID;

如果两个表具有相同的列名,则应在列名之前使用表名,例如 table_name.column_name 以区分两个表的列。

输出:

方法2:使用where子句比较列值

句法:

SELECT column_name from table_name WHERE condition;

询问:

SELECT demo_table1.ID
FROM demo_table1, demo_table2
WHERE demo_table1.ID=demo_table2.ID;

输出: