首页课程SQL Fun ClassDatabase subquery

Database subquery

目录列表

子查询

当一个查询是另一个查询的条件时,称之为 子查询

例如,我们想要知道所有工资大于平均值的员工名单。

首先,我们计算出所有工资的平均值:

SELECT AVG(Salary) FROM employees;

当我们已经知道工资平均值为 “3450” 时,我们可以使用 WHERE 来列出大于该平均值的工资。

SQL 语句如下所示:

SELECT FirstName, Salary FROM employees 
WHERE  Salary > 3450
ORDER BY Salary DESC;

执行输出结果:

{_E)0O$]6{T5K4$6%~[Q3I1.png

DESC 关键字按降序排列结果,ASC 关键字按升序排列结果。

填写空格处,从 "items" 表中选择 cost 大于 "500" 的所有项目,按降序对 cost 进行排序。

SELECT * FROM items cost > 500 cost ;

子查询

单个子查询将更容易地返回相同的结果。

SELECT FirstName, Salary FROM employees 
WHERE  Salary > (SELECT AVG(Salary) FROM employees) 
ORDER BY Salary DESC;

执行输出相同的结果:

T9JE$FQZ40JK([I)R9DIZ[6.png

 注意:将子查询括在括号中。另外,子查询结尾处没有分号,因为它是单个查询的一部分。

填写空白,从 "items" 表中选择 cost 大于平均值的所有项目。使用子查询来计算平均值。

SELECT * FROM items cost > (SELECT (cost) FROM );