首页 > 技术文章 > MySQL子查询

LFTW 2020-09-12 22:51 原文

子查询(内查询)

出现在其他语句内部的select语句

分类:

按子查询出现的位置:

​ select后面:

​ 仅仅支持标量子查询

​ from后面:

​ 支持表子查询

​ where或having后面:

​ 标量子查询(单行e)

​ 列子查询(多行)

​ 行子查询

​ exists后面(相关子查询)

​ 表子查询

按结果集的行列数不同:

​ 标量子查询(结果集只有一行一列)

​ 列子查询(结果集只有一列多行)

​ 行子查询(结果集有一行多列)

​ 表子查询(结果集一般为多行多列)

一、where或having后面

  1. 标量子查询(单行子查询)

  2. 列子查询

  3. 行子查询

特点:

  1. 子查询放在括号内

  2. 子查询一般放在条件的右侧

  3. 标量子查询,一般搭配着单行操作符使用

    > < >= <= <>

  4. 列子查询,一般搭配着多行操作符使用
    in等于任意一个、any/some某一个、all所有值

  5. 子查询优先于主查询

    二、select后面

    select后面只支持标量子查询

    三、from后面

    将子查询结果当一张表,要求必须起别名

    四、exist后面

    查询结果为1或0

推荐阅读