king

mysql有with as语句吗

king Mysql 2022-06-29 973浏览 0

mysql有with as语句吗

WITH AS 子查询部分【mysql5.7及以下不支持,mysql8.0及sqlserver支持】

子查询部分的好处是部分查询,不如有三个表连接在一条语句种出现多次

单个子查询部分

with a as (select * from  Student a inner join Course b ON a.Id=b.StudentId  )select * from a

解析:这样在此语句种每次查询a都是查询了student和course表的联查集合

多个查询部分语法

with a as (select * from  Student),
b as (select * from Course)
select * from a inner join b on a.Id=b.StudentId

如果一整句查询中多个子查询都需要使用同一个子查询的结果,那么就可以用with as,将共用的子查询提取出来,加个别名。后面查询语句可以直接用,对于大量复杂的SQL语句起到了很好的优化作用。

注意:

●相当于一个临时表,但是不同于视图,不会存储起来,要与select配合使用。

●同一个select前可以有多个临时表,写一个with就可以,用逗号隔开,最后一个with语句不要用逗号。

●with子句要用括号括起来。

总结一下with的用法,类似生成一个临时的表。


继续浏览有关 mysql 的文章
发表评论