首頁 > 資料庫 > mysql教程 > mysql有with as語句嗎

mysql有with as語句嗎

WBOY
發布: 2022-01-20 14:21:43
原創
8616 人瀏覽過

在mysql5.7及以下的版本中沒有「with as」語句,在mysql8.0以上的版本中有「with as」語句;mysql5.7不支援該語句,但是可以利用建立臨時表的方式達到同樣的效果,在mysql8.0之後就支援利用該語句進行子查詢。

mysql有with as語句嗎

本教學操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。

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影片教學

#

以上是mysql有with as語句嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板