<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
join 是指 將兩個表連線起來,兩個表分別為 驅動表 和 被驅動表。
我們拿下面的這個sql舉例,
select t1.id,t2.id from t1 inner join t2 on t1.id = t2.id where t1.id > 10;
t1和t2 都對 id 建立了索引,我們假設 t1 是驅動表,t2是被驅動表。
join流程如下:
1、MySQL每次從t1中讀取一行滿足過濾條件t1.id>10的記錄,如果有索引的話,就利用索引快速定位到表t1中符合t1.id>10的記錄。如果沒有索引的話,就從頭到尾遍歷,慢慢的查出表t1中符合t1.id>10的記錄。
2、當從t1中讀取到一條記錄r1後,就根據連線的條件,也就是 on關鍵字後的條件,去t2中對應的t2中的記錄,將t1的記錄和t2的記錄組合返回給使用者端.
具體的說就是,當從t1中得到一條記錄r1的時候,需要根據連線條件 t1.id = t2.id,也就是去t2中查詢是否存在記錄r2 ,其中r2.id = r1.id。
也就是執行 select t2.id from t2 where t2.id = r1.id
如果有t2的id有索引的話,那麼查詢速度是很快的,否則就只能全盤掃描了。
3、就這樣,依次的讀取t1中符合條件的記錄,然後查詢t2,直到t1中的記錄讀取完畢
從上述流程可以看出,join的大致過程就是從驅動表中挨個讀取符合條件的記錄,然後根據連線條件到被驅動表中找出符合條件的記錄,將其組合到一起返回給使用者端。
JOIN用於連表查詢,主要有5種用法。下面分別演示這5種用法
隨便建2張表,結構如下
欄位col1用來使兩張表有一個同名欄位的(但其實沒什麼用,因為查詢條件都需要用ON來指定,這裡只是說明一下如果有相同的欄位名也沒什麼影響)
CROSS JOIN使兩張表的所有欄位直接進行笛卡爾積,假設表1有m條資料,表2有n條資料,則結果數量為m*n條
SELECT * FROM tab1 CROSS JOIN tab2
結果
內連線需要用ON來指定兩張表需要比較的欄位,最終結果只顯示滿足條件的資料
SELECT * FROM tab1 INNER JOIN tab2 ON tab1.id1 = tab2.id2
結果
注意到內連線只把滿足ON條件的資料相連線,與笛卡爾積不同
左連線可以看做在內連線的基礎上,把左表中不滿足ON條件的資料也顯示出來,但結果中的右表部分中的資料為NULL
SELECT * FROM tab1 LEFT JOIN tab2 ON tab1.id1 = tab2.id2
結果
右連線就是與左連線完全相反
SELECT * FROM tab1 RIGHT JOIN tab2 ON tab1.id1 = tab2.id2
結果
全連線就是左連線和右連線的並集,但是MySQL中並不支援全連線的寫法
SELECT * FROM tab1 OUTER JOIN tab2 ON tab1.id1 = tab2.id2
不過可以用UNION聯合左連線和右連線的結果來代替
SELECT * FROM tab1 LEFT JOIN tab2 ON tab1.id1 = tab2.id2 UNION SELECT * FROM tab1 RIGHT JOIN tab2 ON tab1.id1 = tab2.id2
結果
到此這篇關於MySQL中JOIN連線基本用法的文章就介紹到這了,更多相關MySQL JOIN用法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45