前言

本節(jié)我們繼續(xù)講講聯(lián)接類型中的外部聯(lián)接,本節(jié)之后我們將講述有關(guān)聯(lián)接性能以及更深入的知識(shí),簡短內(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)鍵字時(shí)可選的。LEFT關(guān)鍵字表示保留左側(cè)的行,RIGHT關(guān)鍵字表示保留右側(cè)的行,F(xiàn)ULL關(guān)鍵字表示左側(cè)和右側(cè)的行都保留。外部聯(lián)接的第三個(gè)邏輯查詢處理階段識(shí)別保留表中基于ON謂詞未能與另一個(gè)表匹配的行,此階段添加這些行到前兩個(gè)聯(lián)接階段生成的結(jié)果中,在這些外部行中,對于聯(lián)接非保留側(cè)的屬性將使用NULL作為占位符。說了這么多,左外部聯(lián)接就是以左表為基準(zhǔn),若右表滿足條件則返回右側(cè)的行,若不滿足則返回NULL而非右側(cè)的實(shí)際行數(shù)據(jù),右外部聯(lián)接同理。我們來看如下一個(gè)簡單的例子

電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),平面設(shè)計(jì)培訓(xùn),網(wǎng)頁設(shè)計(jì)培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xù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

電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),平面設(shè)計(jì)培訓(xùn),網(wǎng)頁設(shè)計(jì)培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)

電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),平面設(shè)計(jì)培訓(xùn),網(wǎng)頁設(shè)計(jì)培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)

從上知,Sales.Customers表中的有一個(gè)客戶沒有任何訂單,它的訂單Id為22,通過左側(cè)客戶Id為22而右側(cè)得到訂單Id為NULL而得知。

超越外部聯(lián)接基礎(chǔ)知識(shí)

通過上述對外部聯(lián)接的介紹,我們知道通過外部聯(lián)接能夠得到缺失值,也就是不滿足條件則返回NULL。這里我們