目次
テーブルの内部結合
ON句で指定したキー列でテーブルを結合し、一致したデータを抽出します。
SELECT テーブル1.列1 ・・・,テーブル2.列1 ・・・ FROM テーブル1
INNER JOIN テーブル2 ON テーブル1.列1 = テーブル2.列1;
※INNERは省略可能です。
それではサンプルを見てみましょう。
以下のようなorderテーブル(上)とitemテーブル(下)があります。
order_no | item_cd |
---|---|
1 | A00001 |
2 | A00002 |
3 | A00004 |
item_cd | name |
---|---|
A00001 | りんご |
A00002 | みかん |
A00003 | すいか |
item_cd列をキーに、両テーブルを結合し、一致したデータを抽出するためのSQLです。
1 2 |
SELECT T1.order_no, T2.item_cd, T2.name FROM order T1 JOIN item T2 ON T1.item_cd = T2.item_cd; |
上記を実行し、抽出された結果がこちらです。
order_no | item_cd | name |
---|---|---|
1 | A00001 | りんご |
2 | A00002 | みかん |
両テーブルでitem_cdが同じであるデータが抽出されました。
なお、サンプルのように、「テーブル名 別名」とすることで、各テーブルの項目指定時に別名を使用することが可能です。
テーブル名が長い場合などに便利なので、ぜひ活用してみてください。
[Oracle] データ検索 列に別名をつけるSQL(AS)データの検索(列に別名をつける)
指定した列に別名をつけて抽出する
SELECT句で指定した列に対して、AS句で別名を指定します。
...
以上が、テーブルを内部結合して検索するための「JOIN」の使い方です。
ぜひ参考にしてみてください。