📖
【Oracle SQL】ON句を使用した結合について
Oracle SQLに触りはじめた初心者の学習振り返りです。
ON句とは
JOIN句
を使用して2つのテーブルを結合する際、ON句
はそれぞれのテーブルのどの列を基準に結合するかを指定します。この基準となる列は通常、両方のテーブルに存在し、一致する値を持つことが多いです。
JOIN句とは
2つ以上のテーブルからデータを結合するために使用されます。これにより、複数のテーブルに分散して格納されているデータを一元化して取得することが可能になります。
ON句を使用した結合の例
ON句を使用した結合の例
SELECT table1.column1, table2.column2
FROM table1
JOIN table2
ON table1.common_column = table2.common_column;
例の解説
この例では、table1
とtable2
を結合しています。結合の基準となるのはcommon_column
で、この列が両方のテーブルに存在し、その値が一致するレコードが結合されます。
Oracle SQLにおけるON句の特徴について
-
結合条件の指定:
ON句は、JOIN句を使用してテーブルを結合する際に、どのレコードを結合するかを指定するために使用されます。 -
複数の条件の指定:
ON句では、複数の条件を指定することが可能です。これにより、より複雑な結合条件を作成することができます。下記のように書くこともできます。
例
ON table1.column1 = table2.column1 AND table1.column2 = table2.column2
-
任意の比較演算子の使用:
ON句では、等価性(=)だけでなく、他の任意の比較演算子(<、>、<=、>=、<>)を使用することが可能です。 -
関数の使用:
ON句の中では、関数を使用することが可能です。これにより、結合条件をさらに柔軟に指定することができます。 -
サブクエリの使用:
ON句の中では、サブクエリを使用することが可能です。これにより、結合条件を動的に生成することができます。
ON句とWHERE句の違い
それぞれの目的について
ON句
2つ以上のテーブルを結合する際に、どの列を基に結合するかを指定するために使用されます。JOIN句と一緒に使用されます。
例
SELECT *
FROM employees JOIN departments
ON employees.department_id = departments.department_id;
上記SQL文は、employees
テーブルとdepartments
テーブルをdepartment_id
列を基に結合します。
WHERE句
データをフィルタリングするために使用されます。SELECT文でデータを取得する際に、特定の条件を満たすレコードだけを取得したい場合にWHERE句を使用します。
例
SELECT *
FROM employees
WHERE salary > 50000;
上記SQL文は、employees
テーブルから給与が50000以上のレコードだけを取得します。
まとめ
ON句で指定された条件は結合の基準として機能し、結合前のデータで条件による絞り込みが行われます。
一方、WHERE句で指定された条件は、結合後のデータで条件による絞り込みが行われます。
参考
Discussion