【SQL】JOINの使い方(複数のテーブルからデータを結合)

目次

はじめに

SQLにおいて、複数のテーブルからデータを結合することは非常に一般的です。
この結合は、JOINと呼ばれ、異なるテーブルの間で関連付けを行います。
本記事では、SQLでのJOINの使い方について詳しく解説します。

INNER JOINの使い方

INNER JOINは、結合している2つのテーブルの間で共通の行だけを返します。
つまり、両方のテーブルで一致する行のみが結果に含まれます。

例:

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

このクエリは、OrdersテーブルとCustomersテーブルを結合し、顧客が注文を行った場合のみ、注文IDと顧客名を返します。

LEFT JOINの使い方

LEFT JOINは、左側のテーブルのすべての行と、右側のテーブルの一致する行を返します。右側のテーブルに一致する行がない場合は、NULL値が返されます。

例:

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

このクエリは、Ordersテーブルのすべての注文を取得し、それに対応する顧客の名前を返します。もし、顧客情報が存在しない場合は、NULL値が入ります。

RIGHT JOINの使い方

RIGHT JOINは、LEFT JOINの逆です。右側のテーブルのすべての行と、左側のテーブルの一致する行を返します。

例:

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

このクエリは、Customersテーブルのすべての顧客を取得し、それに対応する注文の情報を返します。

FULL JOINの使い方

FULL JOINは、LEFT JOINとRIGHT JOINの両方の結果を含みます。両方のテーブルのすべての行を返します。

例:

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

このクエリは、OrdersテーブルとCustomersテーブルのすべてのデータを取得します。もし、一致するデータがない場合は、NULL値が返されます。

結論

SQLのJOINは、複数のテーブルからデータを結合する際に非常に便利な機能です。INNER JOIN、LEFT JOIN、RIGHT JOIN、そしてFULL JOINを使い分けることで、必要なデータを効果的に取得することができます。JOINの基本的な動作を理解し、データベースクエリの構築に活用してみてください。

目次