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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

内连接的两种方式

發布時間:2023/12/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 内连接的两种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

總第156篇/張俊紅

在前面的文章中我們講過兩個概念,寬表和窄表,在現實業務中,數據庫中很多表存儲其實都是以窄表的形式來存儲的,但是我們一般從數據庫中獲取信息的時候,都是需要同時從多個表中來獲取信息,也就是需要將多個窄表先進行連接,然后再進行 select。連接方式主要有四種:左連接、右連接、內連接、外連接。默認是內連接(劃重點,考試會考,但是貌似很多人不知道)。

今天我們不講別的,只講一下關于內連接的兩種實現方式。

現在有兩張表 ta 和 tb,ta 存儲了學生的基礎信息,tb 存儲了學生的課程信息,現在想要看一下每個學生具體的課程信息,就需要把 ta 和 tb 進行連接,且只看那些報了課程的同學,有的學生可能沒有報名課程。

ta 表信息如下:

stuidnameclassid
2019001皇湘君C001
2019002張運馨C002
2019003周雄?

tb 表信息如下:

classidclassnameteacher
C001數據庫的發展史興斌斌
C002如何成為一名優秀的數據工程師方忻忻
C003數據分析師如何學習Sql取數祿晨星

要想實現我們的需求,我們可以有兩種實現形式:
方式一,直接來看代碼:

select?ta.stuid?as?stuid,ta.name?as?name,tb.classname?as?classname,tb.teacher?as?teacher from?ta,tb where?ta.classid?=?tb.classid

得到的結果如下:

stuidnameclassnameteacher
2019001皇湘君數據庫的發展史興斌斌
2019002張運馨如何成為一名優秀的數據工程師方忻忻

方式二,直接來看代碼:

select?ta.stuid?as?stuid,ta.name?as?name,tb.classname?as?classname,tb.teacher?as?teacher from?ta inner?join?tbon?ta.classid?=?tb.classid

方式一和方式得到的結果是一樣的,既然結果是一樣的,為啥要有兩種方式來寫呢?第一種書寫方式是比較古老的一種寫法,對于內連接現在比較常用的,也是比較推薦的寫法是第二種方式。我們上面舉的例子中只涉及了兩個表,但在實際業務中往往不止連接兩個表,這個時候用第一種方式不僅寫起來會比較抓狂、別人看起來也比較亂,性能也會下降很多。而用第二種方式,可以一直 inner join,不管連接多少個表,看起來都不至于特別亂。如果你還在使用第一種寫法,建議切換到第二種。

你還可以看:

Sql 的執行順序是怎樣的?

Sql 實現數據透視表功能

講講你不知道的窗口函數

講講 group by 的plus版

介紹一下 information_schema 庫

關于 Group 的另一個函數

總結

以上是生活随笔為你收集整理的内连接的两种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

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