目次
テーブルの内部結合
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」の使い方です。
ぜひ参考にしてみてください。