📜  如果记录匹配另一个表中的条目,则 SQL 查询排除记录

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

如果记录匹配另一个表中的条目,则 SQL 查询排除记录

在本文中,我们将看到如何编写 SQL 查询来排除与另一个表中的条目匹配的记录。我们可以使用 SQL 中的 NOT IN运算符来执行上述函数。为了获取值列表,我们可以编写子查询。

NOT IN运算符充当 In运算符符的否定,并返回不包括指定列表中存在的项目的结果。

不在语法中:

SELECT * FROM table_name WHERE column_name NOT IN (list);

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

第一步:创建数据库

我们可以使用以下命令创建一个名为 geeks 的数据库。

询问:

CREATE DATABASE geeks;

第二步:使用数据库

使用以下 SQL 语句将数据库上下文切换到极客:

询问:

USE geeks;

第三步:表定义

我们的极客数据库中有两个名为“demo_table1”和“demo_table2”的表。

查询(demo_table1):

CREATE TABLE demo_table1(
NAME VARCHAR(20),
AGE INT,
CITY VARCHAR(20) );

查询(demo_table2):

CREATE TABLE demo_table2(
NAME VARCHAR(20),
AGE int);

第 4 步:将数据插入表中

查询(demo_table1):

INSERT INTO demo_table1 VALUES
('Romy',23,'Delhi'),
('Rahul',23,'Delhi'),
('Nikhil',24,'Punjab'),
('Ranvir',23,'Punjab'),
('Samiksha',23,'Banglore'),
('Ashtha',24,'Banglore'),
('Tannu',30,'Patna'),
('Girish',30,'Patna'),
('Ram', 20 , 'Patna'),
('Raj', 12, 'Delhi');

查询(demo_table2):

INSERT INTO demo_table2 VALUES
('Fanny',25 ),
('Prem', 30), 
('Preeti',21),
('Samita',32),
('Rahul',23),
('Ranvir',23);

第五步:查看内容

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

询问:

SELECT * FROM demo_table1;

输出:

询问:

SELECT * FROM demo_table2;

输出:

第 6 步:根据在 demo_table2 中找到的匹配项从 demo_table1 中排除数据

对于演示,从 demo_table1 中排除 NAME 列中的值与 demo_table2 的 Name 列中的条目匹配的数据。

询问:

SELECT * FROM demo_table1 WHERE NAME NOT IN (SELECT NAME FROM demo_table2);

输出:

我们可以在图像中看到两个条目被排除,因为值与 demo_table2 中的条目匹配。