新聞中心
本篇內(nèi)容主要講解“SQL中的on條件與where條件有什么區(qū)別”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“SQL中的on條件與where條件有什么區(qū)別”吧!
十載的綏化網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整綏化建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“綏化網(wǎng)站設(shè)計(jì)”,“綏化網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
在使用leftjoin時(shí),on和where條件的區(qū)別如下:
1、on條件是在生成臨時(shí)表時(shí)使用的條件,它不管on中的條件是否為真,都會(huì)返回左邊表中的記錄。
2、where條件是在臨時(shí)表生成好后,再對(duì)臨時(shí)表進(jìn)行過(guò)濾的條件。這時(shí)已經(jīng)沒(méi)有l(wèi)eftjoin的含義(必須返回左邊表的記錄)了,條件不為真的就全部過(guò)濾掉。
假設(shè)有兩張表:
表1:tab1
idsize
110
220
330
表2:tab2
sizename
10AAA
20BBB
20CCC
兩條SQL:
1、select*fromtab1leftjointab2ontab1.size=tab2.sizewheretab2.name='AAA'
2、select*fromtab1leftjointab2ontab1.size=tab2.sizeandtab2.name='AAA'
第一條SQL的過(guò)程:
1、中間表
on條件:
tab1.size=tab2.size
tab1.idtab1.sizetab2.sizetab2.name
11010AAA
22020BBB
22020CCC
330(null)(null)
2、再對(duì)中間表過(guò)濾
where條件:
tab2.name='AAA'
tab1.idtab1.sizetab2.sizetab2.name
11010AAA
第二條SQL的過(guò)程:
1、中間表
on條件:
tab1.size=tab2.sizeandtab2.name='AAA'
(條件不為真也會(huì)返回左表中的記錄)tab1.idtab1.sizetab2.sizetab2.name
11010AAA
220(null)(null)
330(null)(null)
其實(shí)以上結(jié)果的關(guān)鍵原因就是leftjoin,rightjoin,fulljoin的特殊性。
不管on上的條件是否為真都會(huì)返回left或right表中的記錄,full則具有l(wèi)eft和right的特性的并集。
而innerjion沒(méi)這個(gè)特殊性,則條件放在on中和where中,返回的結(jié)果集是相同的。
到此,相信大家對(duì)“SQL中的on條件與where條件有什么區(qū)別”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
本文標(biāo)題:SQL中的on條件與where條件有什么區(qū)別
文章網(wǎng)址:http://www.ef60e0e.cn/article/jgsjpp.html