左外連接就是在等值連接的基礎(chǔ)上加上主表中的未匹配數(shù)據(jù)。 今天下午處理一個(gè)SQL,通過left outer join(so as right left outer join)的表的關(guān)聯(lián)方式. 看到這種語法,直覺上反映查詢結(jié)果的條數(shù)應(yīng)該是Where之后主表返回的記錄數(shù)(下將Where描述前置略去),直到今
左外連接就是在等值連接的基礎(chǔ)上加上主表中的未匹配數(shù)據(jù)。
今天下午處理一個(gè)SQL,通過left outer join(so as right left outer join)的表的關(guān)聯(lián)方式. 看到這種語法,直覺上反映查詢結(jié)果的條數(shù)應(yīng)該是Where之后主表返回的記錄數(shù)(下將Where描述前置略去),直到今天下午寫了一個(gè)SQL語句,返回的記錄數(shù)表總表的比總表的還要多.吶尼!
覺得有點(diǎn)不可接受,why?參考資料也沒反應(yīng)整明白是為什么,查找了半天資料,也沒明白所以然。
于是拉旁邊的哥們討論一下,哥們看了一下說,有無考慮過子表記錄有重復(fù)的情況!瞬間明白了....
大概齊也就是這么個(gè)事:
CREATE TABLE a ( A INT ) CREATE TABLE ab ( B INT ) INSERT INTO a VALUES(1); INSERT INTO a VALUES(2); INSERT INTO ab VALUES(1); INSERT INTO ab VALUES(1); INSERT INTO ab VALUES(1); SELECT * FROM a SELECT * FROM a LEFT OUTER JOIN ab ON (a.a=ab.b)
查詢的結(jié)果為:
1 1 1
2 1 1
3 1 1
4 2
記錄這個(gè)事情的主要目的主要是為了說明:在工作的過程中,第一反應(yīng)的不一定是對(duì)的,而當(dāng)我們自己深陷其中的時(shí)候不妨找個(gè)局外人幫我們處理一下。是所謂旁觀者清,^_^。在討論的時(shí)候還應(yīng)注意只客觀描述問題,盡量不要把小伙伴們也拉到自己的思維陷井中。
連接的參考資料:http://liuzidong.iteye.com/blog/892319
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com