SqlServer 等值連線,左連線,右連線
阿新 • • 發佈:2019-02-18
現在有兩個表A表和B表:現在我想把A表記錄顯示在介面,但是顯示給使用者看到的是userName,而不是op(操作員id).現在需要通過op=userid條件把兩個表連線成一個表。在做專案的過程中一直使用等值連線,結果A表只顯示op不為null 的記錄,這不是我想要的,我希望的結果是不管op 是否為null,都要把記錄顯示出來,所以就總結一下等值連線,左連線,右連線。
A表:
B表:
等值連線:返回A表和B表對應欄位相同的記錄行
SELECT A.itemNo, A.number, A.op,B.userName
FROM A INNER JOIN B ON A.op = B.userID
結果:
左連線:返回包括左表中的所有記錄和右表中聯結欄位相等的記錄
SELECT A.itemNo, A.number, A.op,B.userName
FROM A LEFT OUTER JOIN B ON A.op = B.userID
右連線: 返回包括右表中的所有記錄和左表中聯結欄位相等的記錄。
SELECT A.itemNo, A.number, A.op,B.userName
FROM A RIGHT OUTER JOIN B ON A.op = B.userID
總結:如果兩個表聯接的欄位不為空,用等值連線;如果其中一個表中的聯接的欄位為空,還想把這條記錄顯示出來,就需要把這個表作為主表,左連線左表為主表,右連線右表為主表。