English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQL JOINキーワードの使用方法及び例

SQLキーワードリファレンス

INNER JOIN

INNER JOINコマンドは、二つのテーブルに一致する値を持つ行を返します。

以下SQL选择带有客户信息的所有订单:

SELECT Orders.OrderID, Customers.CustomerName FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

注意:各列間に一致する項目がある限り、INNER JOINキーワードは二つのテーブルからすべての行を選択します。'注文(Orders)'テーブルに'顧客(Customers)'テーブルに一致しないレコードがある場合、これらの注文は表示されません!

以下のSQL文は、顧客および輸送業者の情報を含むすべての注文を選択します:

SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM ((Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID);
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);

LEFT JOIN

LEFT JOINコマンドは、左テーブルからすべての行を返し、右テーブルから一致する行を返します。一致しない場合、結果は右側がNULLです。

以下のSQLは、すべての顧客および彼らが持つ可能性のあるすべての注文を選択します:

 SELECT Customers.CustomerName, Orders.OrderID 
 FROM Customers
 LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
 ORDER BY Customers.CustomerName;

注意:LEFT JOINキーワードは、右テーブル(注文テーブル Orders)に一致しない場合でも、左テーブル(顧客テーブル Customers)のすべてのレコードを返します。

RIGHT JOIN

RIGHT JOINコマンドは、右テーブルからすべての行を返し、左テーブルから一致するレコードを返します。一致しない場合、結果は左側がNULLです。

以下のSQLは、すべての従業員および彼らが注文できる可能性のあるすべての注文を返します:

SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;

注意:RIGHT JOINキーワードは、左テーブル(注文 Orders)に一致しない場合でも、右テーブル(雇員 Employees)のすべてのレコードを返します。

FULL OUTER JOIN

FULL OUTER JOINは、左テーブルまたは右テーブルに一致する項目がある場合、すべての行を返します。

以下SQL文はすべての顧客とすべての注文を選択します:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN  
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

注意:FULL OUTER JOINキーワードは、左テーブル(顧客 Customers)のすべての行と、右テーブル(注文 Orders)からのすべての行を返します。顧客 Customersの行が注文 Ordersにマッチしていない場合や、注文 Ordersの行が顧客 Customersにマッチしていない場合でも、これらの行も表示されます。

SQLキーワードリファレンス