ORACLE SQL リファレンス(逆引き)

ORACLE SQL リファレンス

Web oracle.se-free.com
内部結合(INNER JOIN)
スポンサード リンク

内部結合は、比較演算子または、INNER JOIN句を使用します

FROM 表1
 INNER JOIN 表2 ON
  (表1.列A = 表2.列A)
ANSI/ISO SQL99に対応した内部結合
INNER は省略可能


サンプル表「emp」データ
SQL> select * from emp;

EMP DEP JOB FIRST_NAME LAST_NAME SALARY
--- ---  --- ---------- ---------- ----------
E01 D01  J01 名字1     名前1     100
E02 D01  J01 名前2     名前2     250
E03 D02  J02 名前3     名前3     200
E04 D02  J03 名前4     名前4     200
E05 D02  J03 名前5     名前5     130
E06 D03  J03 名前6     名前6     150

サンプル表「dept」データ
SQL> select * from dept;

DEP DEPT_NAME
--- ----------
D01 総務部
D02 経理部
D04 営業部
D05 管理部


例1) 表「emp」と表「dept」の列「DEPT_ID」で内部結合します
SQL> select
  2   a.emp_id,b.dept_id,b.dept_name
  3  from emp a,dept b
  4  where
  5   a.dept_id = b.dept_id;

EMP DEP DEPT_NAME
--- --- ----------
E01 D01 総務部
E02 D01 総務部
E03 D02 経理部
E04 D02 経理部
E05 D02 経理部


例2) 例1)と同じことをANSI/ISO SQL99に対応したSQL文で記述します
SQL> select
  2   a.emp_id,b.dept_id,b.dept_name
  3  from emp a
  4  inner join dept b
  5   on( a.dept_id = b.dept_id );

EMP DEP DEPT_NAME
--- --- ----------
E01 D01 総務部
E02 D01 総務部
E03 D02 経理部
E04 D02 経理部
E05 D02 経理部
 ”INNER”は省略可能です


スポンサード リンク


内部結合(INNER JOIN)
外部結合(OUTER JOIN、(+))
インラインビューの利用
複雑なSQLの可読性を高める(WITH句)
スカラー副問合せ
複数のSELECT文の結果をマージする(UNION、UNION ALL)
2つのSELECT文の結果の差異を取得する(MINUS)
2つのSELECT文の結果の重複データを取得する(INTERSECT)

SQL(DML2) へ
忘れっぽいエンジニアのオラクルSQLリファレンス TOPへ