濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > SQL中的left join right join

SQL中的left join right join

熱門標(biāo)簽:外呼系統(tǒng)改進(jìn) 地圖標(biāo)注牌 分享百度地圖標(biāo)注多個(gè)位置 知名電銷機(jī)器人價(jià)格 湖南電腦外呼系統(tǒng)平臺(tái) 長(zhǎng)沙智能外呼系統(tǒng) 電銷機(jī)器人公司 需要哪些牌照 廣東防封卡外呼系統(tǒng)原理是什么 菏澤語音電銷機(jī)器人加盟公司
以下是它們的共同點(diǎn):
1. 關(guān)于左右表的概念。左表指的是在SQL語句中排在left join左邊的表,右表指的是排在left join右邊的表。
2. 在拼成的大表中,左表排在左邊,右表排在右邊。
3. on條件語句最好用=號(hào)對(duì)兩表相應(yīng)的主外鍵進(jìn)行連接。當(dāng)然,也可以用其他操作符,如>, , 來連接兩表的任一字段,此時(shí)的關(guān)系將非常復(fù)雜,連接后的記錄數(shù)也隨之而變得不確定。如果在一些特殊的場(chǎng)合中需要用到這種方式,必須通過簡(jiǎn)單的實(shí)例加以確認(rèn),否則,連接結(jié)果很可能不是我們所想要的!
4. on條件語句不能省略。
5. 可以連鎖使用join,每次使用join都令另一表與當(dāng)前的表或連接的結(jié)果相連接。
在下文中,用到了兩個(gè)表,"部門"表與"組織"表,其中,"部門"表有一名為"組織編號(hào)"的外鍵,指向"組織"表中的主鍵"編號(hào)"。
inner join
格式:select * from 部門 inner join 組織 on 部門.組織編號(hào) = 組織.編號(hào)
目的:將兩表中符合on條件的所有記錄都找出來。
規(guī)律:
1. 拼出的大表記錄不會(huì)增加。
2. 如果左邊與右表的關(guān)系是一對(duì)多的關(guān)系,在選出的任一記錄中,假若右表有多個(gè)記錄與其對(duì)應(yīng),那么,連接后的左表,主鍵將不再唯一。
典型應(yīng)用:將存在多關(guān)系的引用表放在左表,將存在一關(guān)系的被引用表放在右表,通過=號(hào)將主外鍵進(jìn)行連接,通過對(duì)右表設(shè)定過濾條件,選出相應(yīng)的且主鍵唯一的左表記錄。
備注:inner join 是默認(rèn)的連接方式,可縮寫為join。
轉(zhuǎn)化為where子句:
select * from 部門, 組織 where 部門.組織編號(hào) = 組織.編號(hào)
left outter join
格式: select * from 部門 left join 組織 on 部門.組織編號(hào) = 組織.編號(hào)
格式: select * from 組織 left join 部門 on 組織.編號(hào) = 部門.組織編號(hào)
目的:將左表的所有記錄列出,右表中只要符合on條件的,與左表記錄相拼合,不符合條件的,填以null值。
規(guī)律:
1. 選出所有符合條件的左表,如果左邊與右表的關(guān)系是一對(duì)一的關(guān)系,則拼成的大表記錄不會(huì)改變。
如果左邊與右表的關(guān)系是多對(duì)一的關(guān)系,則拼成的大表記錄也不會(huì)改變。
如果左邊與右表的關(guān)系是一對(duì)多的關(guān)系,則拼成的大表記錄會(huì)增加。對(duì)于每一具有一對(duì)多關(guān)系的左表記錄,如果左表1:N與右表對(duì)應(yīng),那么會(huì)多出N-1條記錄。例如,如果左表第一條記錄1:3對(duì)應(yīng)于右表,多出2條記錄。如果左表第二條記錄1:2對(duì)應(yīng)于右表,則再多出1條記錄。這樣,總共多出3條記錄。其他類推。
2. 如果左邊與右表的關(guān)系是一對(duì)多的關(guān)系,在選出的任一記錄中,假若右表有多個(gè)記錄與其對(duì)應(yīng),那么,連接后的左表,主鍵將不再唯一。
3. 如果左邊與右表的關(guān)系是一對(duì)多的關(guān)系,對(duì)于左表任一記錄,如果右表沒有記錄與其相對(duì)應(yīng),則全部填以null值。
典型應(yīng)用:將存在多關(guān)系的引用表放在左表,將存在一關(guān)系的被引用表放在右表,通過對(duì)右表設(shè)定過濾條件,選出相應(yīng)的且主鍵唯一的左表記錄。
備注:left outter join可用left join代替。在有些數(shù)據(jù)庫中,如HSqlDb, 只能使用left join而不能使用left outter join。
轉(zhuǎn)化為where子句:
select * from 部門, 組織 where 部門.組織編號(hào) = 組織.編號(hào)
right outter join
格式: select * from 部門 right join 組織 on 部門.組織編號(hào) = 組織.編號(hào)
格式: select * from 組織 right join 部門 on 部門.組織編號(hào) = 組織.編號(hào)
目的:將右表的所有記錄列出,左表中只要符合on條件的,與右表記錄相拼合,不符合條件的,填以null值。
規(guī)律:(與left outter join相反)
典型應(yīng)用:可轉(zhuǎn)化成left outter join。例如
select * from 組織 right join 部門 on 部門.組織編號(hào) = 組織.編號(hào)

select * from 部門 left join 組織 on 部門.組織編號(hào) = 組織.編號(hào)
的效果一樣
您可能感興趣的文章:
  • MySQL利用profile分析慢sql詳解(group left join效率高于子查詢)
  • mysql not in、left join、IS NULL、NOT EXISTS 效率問題記錄
  • SQL之left join、right join、inner join的區(qū)別淺析
  • 解析sql語句中l(wèi)eft_join、inner_join中的on與where的區(qū)別
  • sql 左連接和右連接的使用技巧(left join and right join)
  • sql left join 命令詳解
  • 超詳細(xì)mysql left join,right join,inner join用法分析
  • SQL 外鏈接操作小結(jié) inner join left join right join
  • sql中l(wèi)eft join的效率分析與提高效率方法

標(biāo)簽:珠海 福建 天水 商洛 呼和浩特 美容院 泉州 西寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL中的left join right join》,本文關(guān)鍵詞  SQL,中的,left,join,right,SQL,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL中的left join right join》相關(guān)的同類信息!
  • 本頁收集關(guān)于SQL中的left join right join的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    罗江县| 微山县| 讷河市| 广河县| 石林| 临夏市| 蕉岭县| 丰都县| 得荣县| 阳西县| 宽甸| 龙陵县| 蒙城县| 子长县| 凤城市| 尼木县| 房产| 东乡县| 罗甸县| 东城区| 瑞金市| 南京市| 马龙县| 边坝县| 漳州市| 长汀县| 靖西县| 枣庄市| 慈利县| 长垣县| 宜城市| 肇州县| 垣曲县| 澄迈县| 克山县| 大邑县| 莒南县| 和田县| 博客| 文化| 南安市|