详解mysql子查询

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zyddj123/article/details/84891771

本文详解mysql中的子查询:

子查询分为where子查询和from子查询。

where子查询包括标量子查询、列子查询、行子查询、exists子查询
from子查询包括表子查询

1.标量子查询

概念:子查询得到结果是一个数据 (一行一列)
语法:select * from 数据源 where 条件判断 =/<> (select 字段名 from 数据源 where 条件判断);

2.列子查询

概念: 子查询得到的结果是一列数据(一列多行)
语法: 主查询 where 条件 in (列子查询);

3.行子查询

概念: 子查询返回的结果是一行多列
行元素:字段元素是指一个字段对应的值,行元素对应的就是多个字段,多个字段合起来作为一个元素参与运算,这种情况成为行元素。
语法: 主查询 where 条件 [(构造一个行元素)] = (行子查询);

4.表子查询

概念: 子查询返回的结果是多行多列(也可能是一行一列),与行子查询相似,只是行子查询需要产生行元素而表子查询没有。
区分: 行子查询用于where条件判断,属于where子查询
表子查询用于from数据源,属于from子查询
语法: select 字段表 from (表子查询) as 别名 [where] [group by] [having] [order by] [limit];

5.exists子查询

概念: 子查询返回的结果只有0或者1(成立或者不成立)
语法: select * from 数据源 where exists(查询语句); //根据查询得到的结果进行判断返回0,1

猜你喜欢

转载自blog.csdn.net/zyddj123/article/details/84891771
今日推荐