查询:任何SQL语句都是查询,但此术语一般指select语句。select语句是SQL的查询。SQL还允许创建子查询(subquery),即嵌套在其他查询中的查询。
在select语句中,子查询总是从内向外处理。
格式化SQL:包含子查询的select语句难以阅读,特别是它们较为复杂时更是如此。把子查询分解为多行并且适当进行缩进,能极大简化子查询的使用。
列必须匹配:在where子句中使用子查询,应该保证select语句具有与where子句中相同数目的列。通常,子查询将返回单个列并且与单个列匹配,但如果需要也可以使用多个列。
子查询中的where子句与前面使用的where子句稍有不同,因为它使用了完全限定列名。这种类型的子查询称为相关子查询。任何时候只要列名可能有多义性,就必须是使用这种语法(表命和列名由一个句点分隔)。
相关子查询(correlated subquery):涉及外部查询的子查询。