前言
本節(jié)我們繼續(xù)講講聯(lián)接類型中的外部聯(lián)接,本節(jié)之后我們將講述有關(guān)聯(lián)接性能以及更深入的知識,簡短內(nèi)容,深入的理解,Always to review the basics。
外部聯(lián)接
外部聯(lián)接又分為左外部聯(lián)接和右外部聯(lián)接,使用關(guān)鍵字分別是LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOIN,在這里OUTER關(guān)鍵字時可選的。LEFT關(guān)鍵字表示保留左側(cè)的行,RIGHT關(guān)鍵字表示保留右側(cè)的行,F(xiàn)ULL關(guān)鍵字表示左側(cè)和右側(cè)的行都保留。外部聯(lián)接的第三個邏輯查詢處理階段識別保留表中基于ON謂詞未能與另一個表匹配的行,此階段添加這些行到前兩個聯(lián)接階段生成的結(jié)果中,在這些外部行中,對于聯(lián)接非保留側(cè)的屬性將使用NULL作為占位符。說了這么多,左外部聯(lián)接就是以左表為基準(zhǔn),若右表滿足條件則返回右側(cè)的行,若不滿足則返回NULL而非右側(cè)的實際行數(shù)據(jù),右外部聯(lián)接同理。我們來看如下一個簡單的例子
USE TSQL2012 GO SELECT C.custid, C.companyname, O.orderid FROM Sales.Customers AS C LEFT JOIN Sales.Orders AS O ON C.custid = O.custid
從上知,Sales.Customers表中的有一個客戶沒有任何訂單,它的訂單Id為22,通過左側(cè)客戶Id為22而右側(cè)得到訂單Id為NULL而得知。
超越外部聯(lián)接基礎(chǔ)知識
通過上述對外部聯(lián)接的介紹,我們知道通過外部聯(lián)接能夠得到缺失值,也就是不滿足條件則返回NULL。這里我們