一、左連接基礎知識
1、左連接是什麼:
左連接(Left Join)是一種常見的表連接方式,它會返回左邊表格的所有記錄以及右邊表格中符合條件的那些記錄,如果右邊表格中沒有符合條件的記錄,則會返回 NULL 值。
SELECT A.*, B.*
FROM tableA A
LEFT JOIN tableB B
ON A.ID = B.ID
2、左連接的語法:
LEFT JOIN 關鍵字用於從左表(tableA)中選取所有的行,如果右表(tableB)中沒有匹配行,則結果中會補 NULL。
SELECT column_name(s)
FROM tableA
LEFT JOIN tableB
ON tableA.column_name = tableB.column_name;
3、左連接的特點:
左連接具有保留左表全部數據的特點,又稱為左外連接。
二、左連接操作實例
1、左連接示例:
下面我們以題材電影與電影名稱資料庫為例,來說明 SQL Server 中左連接的具體操作。
題材電影表格:GenreMovies
ID MovieID GenreID
1 1 1
2 1 2
3 2 2
4 3 3
5 3 4
電影名稱表格: Movies
MovieID Movie_Name Year
1 The Shawshank Redemption 1994
2 The Godfather 1972
3 The Dark Knight 2008
我們想查詢題材電影表和電影名稱表中所有有關聯的電影記錄,包括未知電影類型的電影記錄。一種可行的方法是使用 LEFT JOIN 操作符,如下所示:
SELECT Movies.MovieID, Movies.Movie_Name, GenreMovies.GenreID
FROM Movies
LEFT JOIN GenreMovies ON Movies.MovieID = GenreMovies.MovieID
ORDER BY Movies.MovieID
其結果如下:
MovieID Movie_Name GenreID
1 The Shawshank Redemption 1
1 The Shawshank Redemption 2
2 The Godfather 2
3 The Dark Knight 3
3 The Dark Knight 4
2、左連接有 NULL 值的情況說明:
假設我們想查找 1994 年的所有電影的電影名稱和電影類型,但是某些電影可能沒有類型,下面代碼進行了處理,此外 Movie_Name 欄位使用副本而不是源欄位,因此顯示了 NULL 值,如下所示:
SELECT Movies.MovieID, ISNULL(Movies.Movie_Name, 'NULL') AS Movie_Name, GenreMovies.GenreID
FROM Movies
LEFT JOIN GenreMovies ON Movies.MovieID = GenreMovies.MovieID
WHERE YEAR(Movies.Year) = 1994
ORDER BY Movies.MovieID
MovieID Movie_Name GenreID
1 The Shawshank 1
1 The Shawshank 2
NULL NULL NULL
三、左連接的應用場景
1、使用 LEFT JOIN 聯接表格:
左連接用於查詢左邊表格的完全內容,同時還返回右邊表格中符合條件的值。這樣做的好處在於,即使右邊表中的某些值沒有相應的記錄,也不會丟失左邊表格的內容。
2、查詢列表中的所有值:
當用戶需要查看整個列表的所有值時,使用 LEFT JOIN 是更好的選擇,這樣做更確保全部更新,可以避免不必要的錯誤。
3、查找 NULL 或缺失值:
使用 LEFT JOIN 進行數據查找時,可以確定缺失或 NULL 值,這對於進行數據清理和數據分析非常有用。
四、小結
本文對 SQL Server 中的左連接進行了詳細的闡述,包括左連接的基礎知識、操作實例、應用場景等多個方面。通過學習本文,讀者將會對 SQL Server 中的左連接有全面的了解。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/286716.html