【Oracle SQL*Plus】3つ以上のテーブルを結合する【備忘録】

雑学

備忘録になります。

3つ以上のテーブル結合を一度に行えます。
結合する表は以下になります。

SQL> SELECT * FROM TEST_TABLE;

 ID,NAME  ,VAL1,VAL2
---,------,----,----
  1,NAME-A,   1,A
  2,NAME-B,   2,B
  3,NAME-C,   3,C
  4,NAME-D,   4,D
  5,NAME-E,   5,E

SQL> SELECT * FROM TEST_TABLE2;

 ID,NAME  ,VAL1,VAL2
---,------,----,----
  1,NAME-A,  11,AA
  2,NAME-B,  12,AB
  3,NAME-C,  13,AC
  6,NAME-F,  16,AF
  7,NAME-G,  17,AG

SQL> SELECT * FROM TEST_TABLE3;

ID,NAME  ,VAL1,VAL2
--,------,----,----
 4,NAME-D,  24,BD
 5,NAME-E,  25,BE
 8,NAME-H,  28,BH
 9,NAME-I,  29,BI

3つのテーブルを結合します。

SQL> SELECT * FROM TEST_TABLE A
   2 LEFT OUTER JOIN TEST_TABLE2 B
   3 ON  A.ID = B.ID
   4 AND A.NAME = B.NAME
   5 LEFT OUTER JOIN TEST_TABLE3 C
   6 ON  A.ID = C.ID
   7 AND A.NAME = C.NAME;

 ID,NAME  ,VAL1,VAL2, ID,NAME  ,VAL1,VAL2, ID,NAME  ,VAL1,VAL2
---,------,----,----,---,------,----,----,---,------,----,----
  1,NAME-A,   1,A   ,  1,NAME-A,  11,AA  ,   ,      ,    ,
  2,NAME-B,   2,B   ,  2,NAME-B,  12,AB  ,   ,      ,    ,
  3,NAME-C,   3,C   ,  3,NAME-C,  13,AC  ,   ,      ,    ,
  4,NAME-D,   4,D   ,   ,      ,    ,    ,  4,NAME-D,  24,BD
  5,NAME-E,   5,E   ,   ,      ,    ,    ,  5,NAME-E,  25,BE

関連リンク