1. Subqueries (子查询)
🌰中子查询在where子句后
2. The IN Operator
🌰中利用 not in + 子查询
3. Subqueries VS Joins
Attention: 综合考虑代码可读性和运行速度!!!
例1
例2:way1
例2:way2 (比way1 运行速度更快)
4. The ALL Keyword (ALL关键字)
way1 :效率更高
way2:针对本题更直观。
5. The ANY Keyword (ANY关键字)
子查询有多个值,any表示只需要满足其中一个值即可。
6. Correlated Subqueries (相关子查询)
Attention : 使用 Correlated Subqueries 时,查询会在主查询的每一行层面执行。(执行很慢,但现实中应用较多)
7. The EXISTS Operator
- 相当于in
- 当子查询结果集很大时,使用exists更快捷。(例如 查询amazon中哪些产品未出售过,结果集相当大)
🌰中子查询只返回 true/false,这样运行速度更快 。
8. Subqueries in the SELECT Clause (Select子句中的子查询)
- select子句中可以加子查询
- 新建列名不能直接运算(total_sales - average),但是在select子句里面可以select(total_sales - average)
Attention: - group by是对select所有列进行分类,🌰中用到了average是所有行非分类的值,因此🌰不能用group by了
9. Subqueries in the FROM Clause (FROM子句中的子查询)
From 子句必须另命名,🌰中命名为了 sales summary