广告
返回顶部
首页 > 资讯 > 数据库 >Mysql中通用表达式WITH AS语句的使用实例代码
  • 875
分享到

Mysql中通用表达式WITH AS语句的使用实例代码

2024-04-02 19:04:59 875人浏览 八月长安
摘要

目录一、WITH AS 的含义二、WITH AS 的含使用三、WITH AS 的作用补充:使用with as应该注意总结一、WITH AS 的含义 使用with as 可以让子查询重

一、WITH AS 的含义

使用with as 可以让子查询重用相同的with查询块,并在select查询块中直接引用,一般用在select查询块会多次使用某个查询sql时,会把这个sql语句放在with as 中,作为公用的表达式,通过别名的方式在主查询语句中重复使用。

二、WITH AS 的含使用

现有两张表cust_info_detail(客户信息表,表中三个字段,id、name、sex)、order_info_detail(订单详情表,表中3个字段,order_id、order_time、cid,其中cid关联客户信息表中的id),现在要统计某天(作为查询入参)中每个用户下单的数量以及客户的相关信息,如果用户当天没有下单,显示下单数为0。

使用语法:
WITH 
(SELECT语句) AS 别名1,
 (SELECT语句) AS 别名2,
 ...
 SELECT  * FROM 别名1,别名2 WHERE 别名1.id = 别名2.id; 

说明:下面这个SELECT * FROM 别名1,别名2 WHERE 别名1.id = 别名2.id;是主查询语句,可以调用上面定义好的select公用表达式
,需要注意的是主语句不仅仅局限于查询语句,也可以是更新或者删除和插入语句。

WITH
(SELECT id,name FROM cust_info_detail GROUP BY id) AS cust_info,
(SELECT cid, COUNT(order_id) as num FROM order_info_detail WHERE order_time = $datadt$ GROUP BY cid) AS order_num
SELECT
	  t.name   AS '客户姓名'
	 ,t.sex	   AS '客户性别'
	 ,IF(t1.num IS NULL, 0, t1.num)   AS '客户下单数'
	FROM cust_info t
	LEFT JOIN order_num t1 ON t.id = t1.cid

三、WITH AS 的作用

1.定义一个sql片断,该sql片断会被整个sql语句所用到,简化sql,提高可读性

2.with子查询只执行一次,将结果存储在用户临时表空间中,可以引用多次,增强性能

补充:使用with as应该注意

1 with as后面必须紧跟使用CTE(Common table Express--公用表) (with as)的语句

with  a as
(
select * from tb1
)
select * from tb2,a where a.id=tb1.id(就是这个)

2 多个CTE 之间加,分割

with t1 as
(
select * from t1
),(第一个CTE)
t2 as
(
select * from t2
),(第二个CTE)
t3 as
(
select * from t3
)(第三个CTE)

总结

到此这篇关于Mysql中通用表达式WITH AS语句使用的文章就介绍到这了,更多相关mysql通用表达式WITH AS语句内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: Mysql中通用表达式WITH AS语句的使用实例代码

本文链接: https://www.lsjlt.com/news/166447.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作