【Oracle SQL*Plus】テーブル結合(INNER JOIN)【備忘録】
備忘録になります。
以下の2つのテーブルを結合します。
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
この2つのテーブルのIDとNAMEを紐づけて結合します。結合条件を満たすレコードのみ残す場合「INNER JOIN」を使います。
SQL> SELECT * FROM TEST_TABLE A
INNER JOIN TEST_TABLE2 B
ON A.ID = B.ID
AND A.NAME = B.NAME;
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
取得したい項目を選んで整理すると・・・
SQL> SELECT A.ID, A.NAME, A.VAL1 AVAL1, A.VAL2 AVAL2, B.VAL1 BVAL1, B.VAL2 BVAL2
2 FROM TEST_TABLE A
3 INNER JOIN TEST_TABLE2 B
4 ON A.ID = B.ID
5 AND A.NAME = B.NAME;
ID,NAME , AVAL1,AVAL2 , BVAL1,BVAL2
----------,----------,----------,----------,----------,----------
1,NAME-A , 1,A , 11,AA
2,NAME-B , 2,B , 12,AB
3,NAME-C , 3,C , 13,AC
関連リンク