「表の結合」の編集履歴(バックアップ)一覧はこちら

表の結合」(2006/02/05 (日) 15:52:50) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

-6.1 SQL:1999準拠の結合構文 (1)3種類の結合 ①クロス結合 (CROSS JOIN) ◆デカルト席を生成する結合。 ◆結合条件は指定できない。 【例:CROSS JOIN句によるCROSS結合】 SELECT * FROM emp CROSS JOIN dept; ②内部結合([INNER] JOIN) ◆結合条件を指定する。 ◆結合に合う行だけが結合して戻される。 【例:[INNER] JOIN句による内部結合(INNERは省略可能。通常は省略する) SELECT * FROM emp JOIN DEPT ON (emp.deptno = dept.deptno); ③外部結合(LEFT | RIGHT OUTER JOIN) ◆結合条件を指定する。 ◆条件に合わない行も戻すことができる。 ◆左側外部結合、右側外部結合、完全外部結合の3種類がある。 【例:LEFT OUTER JOIN句による外部結合】 SELECT * FROM emp LEFT OUTER JOIN dept on (emp.deptno = dept.deptno); (2)結合の指定方法(ON句と自然結合) 内部結合と外部結合では、ON句または自然結合を使い結合条件を指定する。 ①ON句 ◆任意の結合条件を指定する。行の選択条件も指定できる。(従来のOracle独自構文のWHERE句と同じ) ②自然結合 ◆2つの表の同じ列名の列(共通列)に同じ値を持つ行を結合する。 (3)等価結合と非等価結合 ◆等価結合・・・結合条件に等価演算子(=)を使うもの ◆非等価結合・・・等価演算子以外の演算子(BETWEENなど)を使うもの (4)自己結合 ◆1つの表をあたかも別の表であるかのように結合する。 ◆表別名を指定して表を区別する。 -6.8 USING句 USING句を使い、自然結合に使用する列を限定することができる。 【USING句を使うのに適している場合】 +データ型が異なる共通列が存在する場合。(そのまま自然結合するとエラーになる) +共通列を使って自然結合すると不都合が生じる場合(共通列がNULL値であるなど) ---- -6.12 USING句 2つの表に共通列が複数存在する場合、全ての共通列で結合するならNATURAL JOIN句を使う。特定の列だけで結合したい場合、JOIN USING句を使う。 自然結合で結合される列を表修飾するとエラーになる! 【JOIN USING句の基本構文】 SELECT 列名, 列名 ・・・ FROM 表1 JOIN 表2 USING(列名); (例)EMP表とDEPT表に複数共通列があり、そのうちDEPTNO列だけに限定して結合する場合 SELECT ename, deptno FROM emp JOIN dept USING(deptno); ----
-6.1 SQL:1999準拠の結合構文 (1)3種類の結合 ①クロス結合 (CROSS JOIN) ◆デカルト席を生成する結合。 ◆結合条件は指定できない。 【例:CROSS JOIN句によるCROSS結合】 SELECT * FROM emp CROSS JOIN dept; ②内部結合([INNER] JOIN) ◆結合条件を指定する。 ◆結合に合う行だけが結合して戻される。 【例:[INNER] JOIN句による内部結合(INNERは省略可能。通常は省略する) SELECT * FROM emp JOIN DEPT ON (emp.deptno = dept.deptno); ③外部結合(LEFT | RIGHT OUTER JOIN) ◆結合条件を指定する。 ◆条件に合わない行も戻すことができる。 ◆左側外部結合、右側外部結合、完全外部結合の3種類がある。 【例:LEFT OUTER JOIN句による外部結合】 SELECT * FROM emp LEFT OUTER JOIN dept on (emp.deptno = dept.deptno); (2)結合の指定方法(ON句と自然結合) 内部結合と外部結合では、ON句または自然結合を使い結合条件を指定する。 ①ON句 ◆任意の結合条件を指定する。行の選択条件も指定できる。(従来のOracle独自構文のWHERE句と同じ) ②自然結合 ◆2つの表の同じ列名の列(共通列)に同じ値を持つ行を結合する。 (3)等価結合と非等価結合 ◆等価結合・・・結合条件に等価演算子(=)を使うもの ◆非等価結合・・・等価演算子以外の演算子(BETWEENなど)を使うもの (4)自己結合 ◆1つの表をあたかも別の表であるかのように結合する。 ◆表別名を指定して表を区別する。 ---- -6.8 USING句 USING句を使い、自然結合に使用する列を限定することができる。 【USING句を使うのに適している場合】 +データ型が異なる共通列が存在する場合。(そのまま自然結合するとエラーになる) +共通列を使って自然結合すると不都合が生じる場合(共通列がNULL値であるなど) ---- -6.12 USING句 2つの表に共通列が複数存在する場合、全ての共通列で結合するならNATURAL JOIN句を使う。特定の列だけで結合したい場合、JOIN USING句を使う。 自然結合で結合される列を表修飾するとエラーになる! 【JOIN USING句の基本構文】 SELECT 列名, 列名 ・・・ FROM 表1 JOIN 表2 USING(列名); (例)EMP表とDEPT表に複数共通列があり、そのうちDEPTNO列だけに限定して結合する場合 SELECT ename, deptno FROM emp JOIN dept USING(deptno); ----

表示オプション

横に並べて表示:
変化行の前後のみ表示:
人気記事ランキング
目安箱バナー