まず、JOIN操作について説明します。JOINは、2つ以上のテーブルを結合するための方法です。一般的なJOINの種類には、INNER JOIN、LEFT JOIN、RIGHT JOIN、およびFULL JOINがあります。
INNER JOINは、結合する2つのテーブルの共通の値のみを抽出します。例えば、顧客テーブルと注文テーブルがあり、共通の顧客ID列で結合する場合、INNER JOINを使用すると、両方のテーブルに存在する顧客IDのデータのみを取得できます。
LEFT JOINは、左側のテーブルのすべての行と、右側のテーブルとの共通の値を持つ行を結合します。また、右側のテーブルに対応する値がない場合は、NULL値が表示されます。
RIGHT JOINは、LEFT JOINの逆です。右側のテーブルのすべての行と、左側のテーブルとの共通の値を持つ行を結合します。
FULL JOINは、左側のテーブルと右側のテーブルのすべての行を結合します。共通の値がない場合は、NULL値が表示されます。
次に、サブクエリについて説明します。サブクエリは、別のクエリを含むクエリです。サブクエリを使用すると、より複雑な条件でデータを取得できます。
例えば、注文テーブルから特定の商品の注文数を取得する場合、サブクエリを使用して次のようなクエリを作成できます。
SELECT product_name, (SELECT COUNT(*) FROM orders WHERE product_id = p.product_id) AS order_count FROM products p;
このクエリでは、productsテーブルから商品名を取得し、サブクエリを使用してordersテーブルから該当商品の注文数を取得しています。