您好,登錄后才能下訂單哦!
這篇文章主要介紹了SQL如何連接查詢2 外連接,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
外連接主要包括左連接、右連接和完整外部連接。
1)左連接:Left Join 或 Left Outer Join
左連接的結(jié)果集包括LEFT OUTER子句中指定的左表的所有行,而不僅僅是聯(lián)接列所匹配的行。如果左表的某行在右表中沒(méi)有匹配行,則在相關(guān)聯(lián)的結(jié)果集行中右表的所有選擇列表列均為空值(Null)。
我們看對(duì)應(yīng)的SQL語(yǔ)句:
Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish
From Student
Left JOIN BorrowBook
On Student.StudentID = BorrowBook.StudentID
運(yùn)行的結(jié)果如下:
StudentName StudentAge BorrowBookName BorrowBookPublish
---------------------------------------------------------------------------------
張三 25 馬克思主義政治經(jīng)濟(jì)學(xué) 電子工業(yè)出版社
李四 26 ***思想概論 高等教育出版社
王五 27 鄧小平理論 人民郵電出版社
趙六 28 大學(xué)生思想道德修養(yǎng) 中國(guó)鐵道出版社
無(wú)名氏 27 NULL NULL
(所影響的行數(shù)為 5 行)
可以看到的是,它查詢的結(jié)果是以左表Student為主,Student對(duì)應(yīng)的StudentID在右表BorrowBook如果不存在的話,就會(huì)用NULL值來(lái)代替。
2) 右連接:Right Join 或 Right Outer Join
右連接和左連接相反,它將返回右表的所有行。如果右表的某行在左表中沒(méi)有匹配行,則將為左表返回空值(Null)。
我們看對(duì)應(yīng)的SQL語(yǔ)句
Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish
From Student
Right JOIN BorrowBook
On Student.StudentID = BorrowBook.StudentID
運(yùn)行的結(jié)果如下:
StudentName StudentAge BorrowBookName BorrowBookPublish
----------------------------------------------------------------------------------------------------------------------
張三 25 馬克思主義政治經(jīng)濟(jì)學(xué) 電子工業(yè)出版社
李四 26 ***思想概論 高等教育出版社
王五 27 鄧小平理論 人民郵電出版社
趙六 28 大學(xué)生思想道德修養(yǎng) 中國(guó)鐵道出版社
NULL NULL C語(yǔ)言程序設(shè)計(jì) 高等教育出版社
(所影響的行數(shù)為 5 行)
可以看到的是,它查詢的結(jié)果是以右表BorrowBook為主,BorrowBook對(duì)應(yīng)的StudentID在左表Student如果不存在的話,就會(huì)用NULL值來(lái)代替。
3) 完整外部聯(lián)接:Full Join 或 Full Outer Join
完整外部聯(lián)接返回左表和右表中的所有行。當(dāng)某行在另一個(gè)表中沒(méi)有匹配行時(shí),則另一個(gè)表的選擇列表列包含空值。如果表之間有匹配行,則整個(gè)結(jié)果集行包含基表的數(shù)據(jù)值。
我們看對(duì)應(yīng)的SQL語(yǔ)句
Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish
From Student
FULL OUTER JOIN BorrowBook
On Student.StudentID = BorrowBook.StudentID
結(jié)果如下:
StudentName StudentAge BorrowBookName BorrowBookPublish ----------------------------------------------------------------------------------------------------------------------
NULL NULL C語(yǔ)言程序設(shè)計(jì) 高等教育出版社
張三 25 馬克思主義政治經(jīng)濟(jì)學(xué) 電子工業(yè)出版社
李四 26 ***思想概論 高等教育出版社
王五 27 鄧小平理論 人民郵電出版社
趙六 28 大學(xué)生思想道德修養(yǎng) 中國(guó)鐵道出版社
無(wú)名氏 27 NULL NULL
(所影響的行數(shù)為 6 行)
可以看到的是,它查詢的結(jié)果除了把相對(duì)應(yīng)完全匹配的記錄查出來(lái)以后,還會(huì)把左連接及右連接兩種情形都包括,對(duì)應(yīng)的值用NULL值來(lái)代替。
交叉連接
交叉連接(CROSS JOIN),就是指不帶W H E R E子句的查詢。在數(shù)學(xué)上,就是表的笛卡爾積。也就是它查詢出來(lái)的記錄數(shù)行為兩個(gè)表的乘積,對(duì)應(yīng)記錄也就是為表A*表B。
我們看對(duì)應(yīng)的SQL語(yǔ)句
Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish
From Student Cross Join BorrowBook
運(yùn)行的結(jié)果如下:
StudentName StudentAge BorrowBookName BorrowBookPublish
---------------------------------------------------------------------------------
張三 25 馬克思主義政治經(jīng)濟(jì)學(xué) 電子工業(yè)出版社
李四 26 馬克思主義政治經(jīng)濟(jì)學(xué) 電子工業(yè)出版社
王五 27 馬克思主義政治經(jīng)濟(jì)學(xué) 電子工業(yè)出版社
趙六 28 馬克思主義政治經(jīng)濟(jì)學(xué) 電子工業(yè)出版社
無(wú)名氏 27 馬克思主義政治經(jīng)濟(jì)學(xué) 電子工業(yè)出版社
張三 25 ***思想概論 高等教育出版社
李四 26 ***思想概論 高等教育出版社
王五 27 ***思想概論 高等教育出版社
趙六 28 ***思想概論 高等教育出版社
無(wú)名氏 27 ***思想概論 高等教育出版社
張三 25 鄧小平理論 人民郵電出版社
李四 26 鄧小平理論 人民郵電出版社
王五 27 鄧小平理論 人民郵電出版社
趙六 28 鄧小平理論 人民郵電出版社
無(wú)名氏 27 鄧小平理論 人民郵電出版社
張三 25 大學(xué)生思想道德修養(yǎng) 中國(guó)鐵道出版社
李四 26 大學(xué)生思想道德修養(yǎng) 中國(guó)鐵道出版社
王五 27 大學(xué)生思想道德修養(yǎng) 中國(guó)鐵道出版社
趙六 28 大學(xué)生思想道德修養(yǎng) 中國(guó)鐵道出版社
無(wú)名氏 27 大學(xué)生思想道德修養(yǎng) 中國(guó)鐵道出版社
張三 25 C語(yǔ)言程序設(shè)計(jì) 高等教育出版社
李四 26 C語(yǔ)言程序設(shè)計(jì) 高等教育出版社
王五 27 C語(yǔ)言程序設(shè)計(jì) 高等教育出版社
趙六 28 C語(yǔ)言程序設(shè)計(jì) 高等教育出版社
無(wú)名氏 27 C語(yǔ)言程序設(shè)計(jì) 高等教育出版社
(所影響的行數(shù)為 25 行)
可以看到的是,它把表Student中的每一行和BorrowBook中的每一條記錄都進(jìn)行關(guān)聯(lián),返回的記錄數(shù)為5*5=25行,即笛卡爾積,它執(zhí)行的語(yǔ)句也就等效于
Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish
From Student,BorrowBook
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“SQL如何連接查詢2 外連接”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。