データベース操作をマスターしよう!SQLで複数の列を使ってINNER JOINを行う方法
SQLで複数の列を使ってINNER JOINを行う方法
例:
SELECT *
FROM テーブル1
INNER JOIN テーブル2
ON テーブル1.列1 = テーブル2.列1
AND テーブル1.列2 = テーブル2.列2;
この例では、テーブル1
と テーブル2
を 列1
と 列2
で結合しています。
複数の列を使ってINNER JOINを行う利点:
- 複数の条件に基づいてデータを絞り込むことができる
- データの冗長性を減らすことができる
- 結合する列のデータ型が一致している必要がある
- 結合する列に重複がない必要がある
その他のINNER JOINの種類:
- LEFT JOIN: 左側のテーブルすべての行を返し、一致する右側のテーブルの行を返します。
- FULL JOIN: 両方のテーブルすべての行を返し、一致しない行にはNULL値が返されます。
補足:
- 上記の例では、
*
を使用してすべての列を選択しています。特定の列のみを選択したい場合は、列名をカンマ区切りで指定します。 AND
演算子を使用して、複数の条件を指定することができます。WHERE
句を使用して、さらに条件を絞り込むことができます。
SELECT *
FROM テーブル1
INNER JOIN テーブル2
ON テーブル1.列1 = テーブル2.列1
AND テーブル1.列2 = テーブル2.列2
WHERE テーブル1.列3 > 10;
この例では、列3
が 10 より大きい行のみを返します。
SELECT
従業員.名前,
従業員.部署ID,
部門.部署名
FROM 従業員
INNER JOIN 部門
ON 従業員.部署ID = 部門.部署ID;
このクエリは、従業員
テーブルと 部門
テーブルを 部署ID
で結合し、従業員の名前、部署ID、部署名を返します。
例2:商品と注文テーブルを結合する
SELECT
商品.商品名,
商品.価格,
注文.注文数
FROM 商品
INNER JOIN 注文
ON 商品.商品ID = 注文.商品ID;
SELECT
顧客.名前,
顧客.年齢,
購入履歴.購入日,
購入履歴.商品名
FROM 顧客
INNER JOIN 購入履歴
ON 顧客.顧客ID = 購入履歴.顧客ID;
これらのサンプルコードは、複数の列を使ってINNER JOINを行う方法を理解するのに役立ちます。
複数の列を使ってINNER JOINを行うその他の方法
USING
句を使用すると、複数の列を比較する条件を省略できます。
例:
SELECT *
FROM テーブル1
INNER JOIN テーブル2
USING (列1, 列2);
ON句とWHERE句の組み合わせ:
ON
句と WHERE
句を組み合わせて、複数の条件を指定することができます。
SELECT *
FROM テーブル1
INNER JOIN テーブル2
ON テーブル1.列1 = テーブル2.列1
WHERE テーブル1.列2 > 10;
SELECT *
FROM テーブル1
INNER JOIN テーブル2
ON CASE
WHEN テーブル1.列1 = テーブル2.列1
AND テーブル1.列2 = テーブル2.列2
THEN 1
ELSE 0
END = 1;
sql database