日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

left join on用法_MySQL 多表查询 quot;Joinquot;+“case when”语句总结

發布時間:2023/12/15 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 left join on用法_MySQL 多表查询 quot;Joinquot;+“case when”语句总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本部分講述:join系列全部總結和case when語句用法

join系列:表加法、Cross join 、inner join、left join、right join、full outer join

練習數據

插入數據的代碼,可以在這里直接復制:

絢麗的小海螺:從零學會SQL-入門(Navicat)?zhuanlan.zhihu.com

一、表加法

兩張表進行合并

select

union 和union all 的區別:union會去重并降低效率,union all直接追加。union前后是兩端select語句而非結果集

二、Cross join

笛卡爾積如圖,把所有笛卡爾連接的結果都展示出來,在實際應用中使用較少

三、inner join

根據指定列取兩個表都存在的做交叉聯結

select a.學號,a.姓名,b.課程號 from student as a INNER JOIN score as b on a.學號 = b.學號

四、left join

以左表為主,右表沒有的信息被甜為空

select a.學號,a.姓名,b.課程號 from student as a LEFT JOIN score as b on a.學號 = b.學號

左連接的拓展問題

求差集,如果只想左連接找出如圖所示的結果,非常簡單,只需要對右表的關鍵字加個判斷是否為null

select a.學號,a.姓名,b.課程號 from student as a left JOIN score as b on a.學號 = b.學號 where b.學號 is Null;

五、right join

與left join相反

select a.學號,a.姓名,b.課程號 from student as a right JOIN score as b on a.學號 = b.學號

六 out join

外連接,即求兩個集合的并集。從笛卡爾積的角度講就是從笛卡爾積中挑出ON子句條件成立的記錄,然后加上左表中剩余的記錄,最后加上右表中剩余的記錄。另外MySQL不支持OUTER JOIN,但是我們可以對左連接和右連接的結果做UNION操作來實現。

連接后的篩選結果依然正常使用group by having等函數

七 Case when

case when 如何用?case when 在面試中十分常見,也十分使用

圖中的序號代表執行順序,意味著when的條件是互斥的。找到滿足的條件則退出case 語句,但通常我們使用case語句是做匯總分析比如如下:

使用0,1小技巧,先給表增加兩列,再分組統計

SELECT 課程號, case when 成績>=60 then 1 else 0 end as 及格人數, case when 成績<60 then 1 else 0 end as 不及格人數 from score

生成如下結果,再進行分組統計

整合結果如下

SELECT 課程號, sum(case when 成績>=60 then 1 else 0 end) as 及格人數, sum(case when 成績<60 then 1 else 0 end) as 不及格人數 from score GROUP BY 課程號

case when更為常見使用場景是分段統計

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的left join on用法_MySQL 多表查询 quot;Joinquot;+“case when”语句总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。