除了INNER JOIN外,MySQL中還有哪些類型的JOIN?

2024.01.09

在MySQL 中,JOIN 是一種用於聯合多個表的操作,它透過匹配兩個或多個表中的行來獲取相關資料。除了常見的INNER JOIN,MySQL 還支援其他幾種類型的JOIN 操作,包括LEFT JOIN、RIGHT JOIN、FULL JOIN 和CROSS JOIN。

在關聯式資料庫中,JOIN 是一種非常重要的操作,它可用於將兩個或多個表中的資料進行聯合,以獲取更全面和準確的資料。MySQL 提供了多種JOIN 類型,每種JOIN 類型都有其特定的用途和語法。了解這些不同的JOIN 類型,可以幫助我們在實際的查詢中靈活運用,提高查詢效率和準確性。

內部聯接

INNER JOIN 是最常見且基礎的JOIN 類型,它透過匹配兩個表中的行來傳回滿足條件的資料。INNER JOIN 僅傳回同時存在於兩個表中的符合行,可用於取得相關聯的資料。

INNER JOIN 的語法和範例

SELEC T 列名
FROM 表1
INNER JOIN 表2
ON 表1.列 = 表2.列;
  • 1.
  • 2.
  • 3.
  • 4.

範例:

SELEC T Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID = Customers.CustomerID;
  • 1.
  • 2.
  • 3.
  • 4.

左連接

LEFT JOIN 傳回左表中的所有行和符合右表中的行。如果右表中沒有符合的行,則傳回NULL 值。LEFT JOIN 可以用於取得左表的全部資料和與之相關聯的右表資料。

LEFT JOIN 的語法與範例

SELEC T 列名
FROM 表1
LEFT JOIN 表2
ON 表1.列 = 表2.列;
  • 1.
  • 2.
  • 3.
  • 4.

範例:

SELEC T Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
  • 1.
  • 2.
  • 3.
  • 4.

右邊連接

RIGHT JOIN 傳回右表中的所有行和符合左表中的行。如果左表中沒有符合的行,則傳回NULL 值。RIGHT JOIN 可用於取得右表的全部資料和與之相關聯的左表資料。

RIGHT JOIN 的語法與範例

SELEC T 列名
FROM 表1
RIGHT JOIN 表2
ON 表1.列 = 表2.列;
  • 1.
  • 2.
  • 3.
  • 4.

範例:

SELEC T Employees.LastName, Orders.OrderID
FROM Employees
RIGHT JOIN Orders
ON Employees.EmployeeID = Orders.EmployeeID;
  • 1.
  • 2.
  • 3.
  • 4.

全面加入

FULL JOIN 傳回左表和右表中的所有行,如果左表或右表中沒有符合的行,則傳回NULL 值。FULL JOIN 可以用來取得左表和右表的全部資料。

FULL JOIN 的語法和範例

SELEC T 列名
FROM 表1
FULL JOIN 表2
ON 表1.列 = 表2.列;
  • 1.
  • 2.
  • 3.
  • 4.

範例:

SELEC T Customers.CustomerName, Orders.OrderID
FROM Customers
FULL JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
  • 1.
  • 2.
  • 3.
  • 4.

交叉連接

CROSS JOIN 是一種笛卡爾積操作,它會傳回兩個表中所有可能的組合。即,它將左表的每一行與右表的每一行組合,產生一個新的結果集。

CROSS JOIN 的語法與範例

SELEC T 列名
FROM 表1
CROSS JOIN 表2;
  • 1.
  • 2.
  • 3.

範例:

SELEC T Customers.CustomerName, Products.ProductName
FROM Customers
CROSS JOIN Products;
  • 1.
  • 2.
  • 3.

在MySQL 中,JOIN 是一種用於聯合多個表的重要操作。除了常見的INNER JOIN,MySQL 還支援LEFT JOIN、RIGHT JOIN、FULL JOIN 和CROSS JOIN 等不同類型的JOIN 操作。透過選擇合適的JOIN 類型,並靈活運用其語法,我們可以有效地聯合多個表,獲取準確和全面的數據,滿足實際的查詢需求。