圖解Mysql中的LEFT?JOIN、RIGHT?JOIN與JOIN的區(qū)別
圖解Mysql中的LEFT JOIN、RIGHT JOIN與JOIN的區(qū)別
如圖:
T1表
ID | NAME | COURSE |
1 | 張三 | 11 |
2 | 李四 | 12 |
3 | 王五 | 13 |
T2表
ID | NAME | COURSE |
3 | 張三 | 語文 |
4 | 張三 | 數(shù)學(xué) |
5 | 馬六 | 英語 |
1、ID關(guān)聯(lián)(LEFT JOIN)
SELECT * FROM T1 LEFT JOIN T2 ON T1.ID=T2.ID
結(jié)果如圖:
聯(lián)系兩個(gè)表:
分析:以T1表(左邊)為主表,查詢與T1表有相同ID的數(shù)據(jù)。
2、ID關(guān)聯(lián)(RIGHT JOIN)
SELECT * FROM T1 RIGHT JOIN T2 ON T1.ID=T2.ID
結(jié)果如圖:
聯(lián)系兩個(gè)表:
分析:以T2表(右邊)為主表,查詢與T2表有相同ID的數(shù)據(jù)。
轉(zhuǎn)換:即
SELECT * FROM T1 RIGHT JOIN T2 ON T1.ID=T2.ID
等同于
SELECT * FROM T2 LEFT JOIN T1 ON T1.ID=T2.ID
查詢出來的數(shù)據(jù)一樣,但呈現(xiàn)方式不同,如下圖:
3、ID關(guān)聯(lián)(JOIN)
SELECT * FROM T1 JOIN T2 ON T1.ID=T2.ID
等同于
SELECT * FROM T2 JOIN T1 ON T1.ID=T2.ID
結(jié)果如圖:
分析:查詢兩個(gè)有相同ID的的數(shù)據(jù)。
這時(shí)候如果換一種方式呢,比如以NAME關(guān)聯(lián)
①NAME關(guān)聯(lián)(LEFT JOIN)
SELECT * FROM T1 JOIN T2 ON T1.NAME=T2.NAME
結(jié)果如圖:
聯(lián)系兩個(gè)表:
分析:以T1表(左邊)為主表,查詢與T1表有相同NAME的數(shù)據(jù)(與以ID關(guān)聯(lián)原理一樣,LEFT JOIN與JOIN就不一一列出來了)。
到此這篇關(guān)于圖解Mysql中的LEFT JOIN、RIGHT JOIN與JOIN的區(qū)別的文章就介紹到這了,更多相關(guān)Mysql的LEFT JOIN、RIGHT JOIN與JOIN內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL數(shù)據(jù)庫中sql表設(shè)計(jì)的注意事項(xiàng)
實(shí)際開發(fā)中一個(gè)項(xiàng)目通常需要很多張表才能完成,這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫中sql表設(shè)計(jì)的注意事項(xiàng),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05詳解MySQL?substring()?字符串截取函數(shù)
MySQL 查詢數(shù)據(jù)有時(shí)候需要對數(shù)據(jù)項(xiàng)進(jìn)行日期格式化或截取特定部分的操作,當(dāng)需要對字符串進(jìn)行截取加工時(shí)用到了 substring() 函數(shù),這篇文章主要介紹了MySQL?substring()?字符串截取函數(shù),需要的朋友可以參考下2022-07-07mysql for update是鎖表還是鎖行實(shí)例詳解
在并發(fā)一致性控制場景中,我們常常用for update悲觀鎖來進(jìn)行一致性的保證,但是如果不了解它的機(jī)制,就進(jìn)行使用,很容易出現(xiàn)事故,比如for update進(jìn)行了鎖表導(dǎo)致其他請求只能等待,從而拖垮系統(tǒng),這篇文章主要介紹了mysql for update是鎖表還是鎖行操作,需要的朋友可以參考下2024-03-03MySQL的一些功能實(shí)用的Linux shell腳本分享
這篇文章主要介紹了Linux系統(tǒng)下MySQL的一些實(shí)用功能的shell腳本分享,包括啟動(dòng)Memcached、binlog自動(dòng)清理和修復(fù)主從同步這樣三個(gè)簡單的實(shí)例,需要的朋友可以參考下2015-12-12