📜  使用另一个表过滤表的 SQL 查询

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

使用另一个表过滤表的 SQL 查询

在本文中,我们将看到如何使用另一个表过滤一个表。我们可以通过使用子查询代替 WHERE 子句中的条件来执行该函数。另一个查询中的查询称为子查询。它也可以称为嵌套查询。一个 SQL 代码可以有一个或多个嵌套查询。

句法:

SELECT * FROM table_name WHERE
column_name=( SELECT column_name FROM table_name);

在 WHERE 子句之后编写的查询是上述语法中的子查询。

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

第一步:创建数据库

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

询问:

CREATE DATABASE geeks;

第二步:使用数据库

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

询问:

USE geeks;

第三步:表定义

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

查询(demo_table1):

CREATE TABLE demo_table1(
NAME VARCHAR(20),
AGE int,
CITY VARCHAR(10),
INCOME int);

查询(demo_table2):

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

第 4 步:将数据插入表中

查询(demo_table1):

INSERT INTO demo_table1 VALUES
('Romy',23,'Delhi',400000),
('Pushkar',23,'Delhi',700000),
('Nikhil',24,'Punjab',350000),
('Rinkle',23,'Punjab',600000),
('Samiksha',23,'Banglore',800000),
('Ashtha',24,'Banglore',300000),
('Satish',30,'Patna',450000),
('Girish',30,'Patna',5500000),
('Ram', 20 , 'Patna',650000),
('Raj', 12, 'Delhi',380000);

查询(demo_table2):

INSERT INTO demo_table2 VALUES
('Fanny',25,600000 ),
('Prem', 30,450000),
('Preeti',21,250000 ),
('Samita',32,440000),
('Ozymandias',34,650000);

第五步:查看表格内容。

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

询问:

SELECT * FROM demo_table1;

输出:

询问:

SELECT * FROM demo_table2;

输出:

第 6 步:使用另一个表过滤表

为了演示,我们将筛选 demo_table1 中 INCOME 大于 semo_table2 中最大 INCOME 的数据。

从 demo_table2 中获取最高薪水:

询问:

SELECT MAX(INCOME) FROM demo_table2;

上面使用的查询将用作子查询来过滤 demo_table1。

最终查询:

SELECT * FROM demo_table WHERE INCOME > (SELECT MAX(INCOME) FROM demo_table2);

输出:

从图像中您可以看到来自 demo_table1 的数据被过滤掉,其 INCOME 超过 650000(demo_table2 中的最大收入值)。