使用子查询
查询(query)
任何SQL 语句都是查询,但此术语一般指SELECT 语句。
子查询(subquery)
- SQL 允许创建子查询,即嵌套在其他查询中的查询
利用子查询进行过滤
SELECT column_name_1
FROM table_name_1
WHERE column_name_2 IN (SELECT column_name_2
FROM table_name_2
WHERE column_name_3 IN (SELECT column_name_3
FROM table_name_3
WHERE column_name_4 = 'str'));
- 作为子查询的SELECT 语句职能查询单个列
作为计算字段使用子查询
SELECT column_name_1,
(SELECT COUNT(*)
FROM table_name_2
WHERE table_name_2.column_name_2 = table_name_1.column_name_1) AS name_3
FROM table_name_1
ORDER BY column_name_1;
- name_3 是一个计算字段,由圆括号中的子查询建立,该子查询对检索出的每个“table_name_1.column_name_1”执行一次
- 有可能混淆列名时必须使用完全限定列名,即用一个句点分隔表名和列名。(在SELECT 语句中操作多个表建议使用完全限定列名以避免歧义)