9. 使用子查询

使用子查询

查询(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 语句中操作多个表建议使用完全限定列名以避免歧义)

你可能感兴趣的:(9. 使用子查询)