共計 1552 個字符,預計需要花費 4 分鐘才能閱讀完成。
這篇文章給大家介紹 MySQL 中如何實現左連接與右連接,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
表 A 記錄如下:
aID aNum
1 a20050111
2 a20050112
3 a20050113
4 a20050114
5 a20050115
表 B 記錄如下:
bID bName
1 2006032401
2 2006032402
3 2006032403
4 2006032404
8 2006032408
實驗如下:
1.left join
sql 語句如下:
SELECT *
FROM A
LEFT JOIN B
ON A.aID = B.bID
結果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
5 a20050115 NULL NULL
(所影響的行數為 5 行)
結果說明:
left join 是以 A 表的記錄為基礎的,A 可以看成左表,B 可以看成右表,left join 是以左表為準的. 換句話說, 左表 (A) 的記錄將會全部表示出來, 而右表 (B) 只會顯示符合搜索條件的記錄(例子中為: A.aID = B.bID).
B 表記錄不足的地方均為 NULL.
2.right join
sql 語句如下:
SELECT *
FROM A
RIGHT JOIN B
ON A.aID = B.bID
結果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
NULL NULL 8 2006032408
(所影響的行數為 5 行)
結果說明:
仔細觀察一下, 就會發現, 和 left join 的結果剛好相反, 這次是以右表 (B) 為基礎的,A 表不足的地方用 NULL 填充.
3.inner join
sql 語句如下:
SELECT *
FROM A
INNER JOIN B
ON A.aID = B.bID
結果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
結果說明:
很明顯, 這里只顯示出了 A.aID = B.bID 的記錄. 這說明 inner join 并不以誰為基礎, 它只顯示符合條件的記錄.
-----------------[以下為網上的一點資料]------------------
LEFT JOIN 操作用于在任何的 FROM 子句中,組合來源表的記錄。使用 LEFT JOIN 運算來創建一個左邊外部聯接。左邊外部聯接將包含了從第一個(左邊)開始的兩個表中的全部記錄,即使在第二個(右邊)表中并沒有相符值的記錄。
語法:
FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2
說明:
① table1, table2 參數用于指定要將記錄組合的表的名稱。
② field1, field2 參數指定被聯接的字段的名稱。且這些字段必須有相同的數據類型及包含相同類型的數據,但它們不需要有相同的名稱。
③ compopr 參數指定關系比較運算符:=,,,=,= 或。
④ 如果在 INNER JOIN 操作中要聯接包含 Memo 數據類型或 OLE Object 數據類型數據的字段,將會發生錯誤。
關于 MySQL 中如何實現左連接與右連接就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。