子查询

发布时间:2025-09-02 12:32

电子垃圾地图查询:查询附近是否有电子垃圾回收点。 #生活技巧# #环保生活小窍门# #电子垃圾处理#

子查询

在 SQL 中,子查询(Subquery)是一个嵌套在另一个查询中的查询语句。子查询可以用于在 SELECT、INSERT、UPDATE 或 DELETE 语句中提供数据或条件。子查询可以返回单个值、一行、一列或多行多列数据。以下是对子查询的详细讲解。

1. 子查询的基本语法

子查询的基本语法如下:

SELECT column1, column2, ... FROM table_name WHERE column_name operator ( SELECT column1, column2, ... FROM another_table WHERE condition ); column1, column2, ...:要查询的列。 table_name:主查询的表。 column_name:主查询中用于比较的列。 operator:比较运算符,如 =, <>, >, <, >=, <=, IN, NOT IN, EXISTS, NOT EXISTS 等。 another_table:子查询的表。 condition:子查询的条件。 2. 子查询的类型

子查询可以分为以下几种类型:

标量子查询:返回单个值。 行子查询:返回一行数据。 列子查询:返回一列数据。 表子查询:返回多行多列数据。

示例

假设有一个 employees 表,包含以下数据:

employee_id first_name last_name salary department_id

1 Alice Smith 60000 101 2 Bob Johnson 70000 101 3 Charlie Brown 50000 102 4 David Davis 80000 102 5 Eve White 90000 103 标量子查询

查询工资高于平均工资的员工:

SELECT * FROM employees WHERE salary > ( SELECT AVG(salary) FROM employees );

结果:

employee_id first_name last_name salary department_id

4 David Davis 80000 102 5 Eve White 90000 103 行子查询

查询工资和部门 ID 与员工 Alice 相同的员工:

SELECT * FROM employees WHERE (salary, department_id) = ( SELECT salary, department_id FROM employees WHERE first_name = 'Alice' );

结果:

employee_id first_name last_name salary department_id

1 Alice Smith 60000 101 2 Bob Johnson 70000 101 列子查询

查询工资高于部门 101 的任何员工工资的员工:

SELECT * FROM employees WHERE salary > ANY ( SELECT salary FROM employees WHERE department_id = 101 );

结果:

employee_id first_name last_name salary department_id

4 David Davis 80000 102 5 Eve White 90000 103 表子查询

查询每个部门工资最高的员工:

SELECT e1.* FROM employees e1 WHERE ( SELECT COUNT(*) FROM employees e2 WHERE e2.department_id = e1.department_id AND e2.salary > e1.salary ) = 0;

结果:

employee_id first_name last_name salary department_id

2 Bob Johnson 70000 101 4 David Davis 80000 102 5 Eve White 90000 103 EXISTS 和 NOT EXISTS

查询没有订单的客户:

SELECT * FROM customers c WHERE NOT EXISTS ( SELECT 1 FROM orders o WHERE o.customer_id = c.customer_id );

结果:

customer_id customer_name customer_email customer_age

3 Charlie [email protected] 22

网址:子查询 https://klqsh.com/news/view/209457

相关内容

薪酬查询方式
星座查询运势(星座查询运势今日运势)
IP地址查询
lezhuanwang.net SEO综合查询
IP归属地查询
本周星座运势查询
92号汽油今日价格查询(2025/8/6)南通今日油价查询(2)
关键词排名查询
2025年在线日历查询,全年农历日历查询
在线垃圾分类查询

随便看看