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

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

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

一、WITH AS 的含義

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

二、WITH AS 的含使用

現(xiàn)有兩張表cust_info_detail(客戶信息表,表中三個字段,id、name、sex)、order_info_detail(訂單詳情表,表中3個字段,order_id、order_time、cid,其中cid關(guān)聯(lián)客戶信息表中的id),現(xiàn)在要統(tǒng)計(jì)某天(作為查詢?nèi)雲(yún)ⅲ┲忻總€用戶下單的數(shù)量以及客戶的相關(guān)信息,如果用戶當(dāng)天沒有下單,顯示下單數(shù)為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;是主查詢語句,可以調(diào)用上面定義好的select公用表達(dá)式
,需要注意的是主語句不僅僅局限于查詢語句,也可以是更新或者刪除和插入語句。

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.定義一個sql片斷,該sql片斷會被整個sql語句所用到,簡化sql,提高可讀性

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

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

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)

總結(jié)

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

相關(guān)文章

最新評論