Mysql中通用表達(dá)式WITH?AS語句的使用實(shí)例代碼
一、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)文章
MySQL8.0實(shí)現(xiàn)窗口函數(shù)計(jì)算同比環(huán)比
本文主要介紹了MySQL8.0實(shí)現(xiàn)窗口函數(shù)計(jì)算同比環(huán)比,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06Mysql 5.7.19 winx64 ZIP Archive 安裝及使用過程問題小結(jié)
本篇文章給大家介紹了mysql 5.7.19 winx64 ZIP Archive 安裝及使用過程問題小結(jié),需要的朋友可以參考下2017-07-07在MySQL中使用GTIDs復(fù)制協(xié)議和中斷協(xié)議的教程
這篇文章主要介紹了在MySQL中使用GTIDs復(fù)制協(xié)議和中斷協(xié)議的教程,主要用于多個服務(wù)器之間的通信,需要的朋友可以參考下2015-04-04MySQL實(shí)現(xiàn)統(tǒng)計(jì)過去12個月每個月的數(shù)據(jù)信息
這篇文章主要介紹了MySQL實(shí)現(xiàn)統(tǒng)計(jì)過去12個月每個月的數(shù)據(jù)信息,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12