欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql中通用表達(dá)式WITH?AS語(yǔ)句的使用實(shí)例代碼

 更新時(shí)間:2022年08月31日 10:24:38   作者:橘子粥  
with as也叫子查詢,用來(lái)定義一個(gè)sql片段,且該片段會(huì)被整個(gè)sql語(yǔ)句反復(fù)使用很多次,這個(gè)sql片段就相當(dāng)于是一個(gè)公用臨時(shí)表,下面這篇文章主要給大家介紹了關(guān)于Mysql中通用表達(dá)式WITH?AS語(yǔ)句使用的相關(guān)資料,需要的朋友可以參考下

一、WITH AS 的含義

使用with as 可以讓子查詢重用相同的with查詢塊,并在select查詢塊中直接引用,一般用在select查詢塊會(huì)多次使用某個(gè)查詢sql時(shí),會(huì)把這個(gè)sql語(yǔ)句放在with as 中,作為公用的表達(dá)式,通過別名的方式在主查詢語(yǔ)句中重復(fù)使用。

二、WITH AS 的含使用

現(xiàn)有兩張表cust_info_detail(客戶信息表,表中三個(gè)字段,id、name、sex)、order_info_detail(訂單詳情表,表中3個(gè)字段,order_id、order_time、cid,其中cid關(guān)聯(lián)客戶信息表中的id),現(xiàn)在要統(tǒng)計(jì)某天(作為查詢?nèi)雲(yún)ⅲ┲忻總€(gè)用戶下單的數(shù)量以及客戶的相關(guān)信息,如果用戶當(dāng)天沒有下單,顯示下單數(shù)為0。

使用語(yǔ)法:
WITH 
(SELECT語(yǔ)句) AS 別名1,
 (SELECT語(yǔ)句) AS 別名2,
 ...
 SELECT  * FROM 別名1,別名2 WHERE 別名1.id = 別名2.id; 

說明:下面這個(gè)SELECT * FROM 別名1,別名2 WHERE 別名1.id = 別名2.id;是主查詢語(yǔ)句,可以調(diào)用上面定義好的select公用表達(dá)式
,需要注意的是主語(yǔ)句不僅僅局限于查詢語(yǔ)句,也可以是更新或者刪除和插入語(yǔ)句。

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 '客戶下單數(shù)'
	FROM cust_info t
	LEFT JOIN order_num t1 ON t.id = t1.cid

三、WITH AS 的作用

1.定義一個(gè)sql片斷,該sql片斷會(huì)被整個(gè)sql語(yǔ)句所用到,簡(jiǎn)化sql,提高可讀性

2.with子查詢只執(zhí)行一次,將結(jié)果存儲(chǔ)在用戶臨時(shí)表空間中,可以引用多次,增強(qiáng)性能

補(bǔ)充:使用with as應(yīng)該注意

1 with as后面必須緊跟使用CTE(Common table Express--公用表) (with as)的語(yǔ)句

with ?a as
(
select * from tb1
)
select * from tb2,a where a.id=tb1.id(就是這個(gè))

2 多個(gè)CTE 之間加,分割

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

總結(jié)

到此這篇關(guān)于Mysql中通用表達(dá)式WITH AS語(yǔ)句使用的文章就介紹到這了,更多相關(guān)Mysql通用表達(dá)式WITH AS語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論