左連線 vs 右連線



左連線和右連線的主要區別在於連線表的方式。

它們都是外連線;也就是說,它們保留一個表中的不匹配行,並丟棄另一個表中的不匹配行。左連線保留左側表的不匹配行,而右連線保留右側表的不匹配行。

左連線的工作原理

左連線或 SQL 中的左外連線組合兩個或多個表,其中第一個表按原樣返回;但是,只有在第一個表中具有對應項的記錄才會從後續表中返回。

如果 ON 子句在後續表中與第一個表中的行匹配的記錄為零,則左連線仍將在結果中返回第一個表的這些行,但在右表中的每一列中都為 NULL。

語法

以下是 SQL 中左連線的基本語法:

SELECT table1.column1, table2.column2...
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

示例

下面的示例演示了對兩個相關表進行左連線操作。這裡,第一個表包含工資資訊,第二個表包含婚姻狀況資訊。由於 Alex 的狀態未知,因此未在表中記錄。

Left Join Vs Right Join

當使用左連線查詢連線兩個表時,由於沒有與 Alex 的狀態匹配的記錄,因此該值在最終表中記錄為 NULL。

右連線的工作原理

SQL 中的右連線或右外連線查詢返回右表中的所有行,即使左表中沒有匹配項也是如此。這意味著如果 ON 子句在左表中與右表中的記錄匹配的記錄為 0(零),則右連線仍將在結果中返回右表的行,但在左表中的每一列中都為 NULL 值。

語法

以下是 SQL 中右連線的基本語法:

SELECT table1.column1, table2.column2...
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

示例

在本例中,對同一張表執行右連線操作。在這裡,我們從右表開始連線;由於右表不包含與 Alex 行匹配的記錄值,因此該行將從最終表中丟棄。

Left Join Vs Right Join

最終表只包含兩行,因為右表只包含兩行。

左連線與右連線

讓我們在下表中總結左連線和右連線之間的所有區別:

左連線 右連線
左連線將第一個表或左表的資料與第二個表中的資料匹配。如果資料匹配,則組合記錄;否則,記錄為 NULL。右連線將第二個表或右表的資料與第一個表中的資料匹配。如果資料匹配,則組合記錄;否則,記錄為 NULL。
如果第一個表的行數少於第二個表,則丟棄第二個表中多餘的不匹配行。 如果第二個表的行數少於第一個表,則丟棄第一個表中多餘的不匹配行。
此連線也稱為左外連線 此連線也稱為右外連線
在 Transact SQL 中,使用 *= 代替使用 LEFT JOIN 或 LEFT OUTER JOIN 查詢。 在 Transact SQL 中,使用 =* 代替使用 RIGHT JOIN 或 RIGHT OUTER JOIN 查詢。

從總結中我們可以看出,左連線和右連線之間的差異並不廣泛。它們之間的每一個區別都歸結於連線表的方式和連線的視角。

廣告