English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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コマンドは、左テーブルからすべての行を返し、右テーブルから一致する行を返します。一致しない場合、結果は右側が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コマンドは、右テーブルからすべての行を返し、左テーブルから一致するレコードを返します。一致しない場合、結果は左側が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は、左テーブルまたは右テーブルに一致する項目がある場合、すべての行を返します。
以下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にマッチしていない場合でも、これらの行も表示されます。