Home − 実験室 − No.0068 |
No.0068(SQL)
3表の結合 |
■環境 |
□OS: Windows XP Professional SP3 □Oracle: Oracle Database 11g R2 (Standard) □OSログインユーザ: ORA_DBAグループ □Oracleユーザ: dicdic(実験用ユーザー) → 実験環境構築スクリプト |
■実験 | ||
0. 実験ユーザー「dicdic」でコネクトする。
1.【3つのテーブルの結合】 サンプルデータベースの「TT01_学生」表では、学科データは併記されていても、学部のデータはない。 学部を知るためには、学科マスターから、更に学部マスターを辿らなければならず、 3つのテーブルをJOINする必要がある。 3つのテーブルをJOINする場合、『「表Aと表BをJOINしたもの」と「表C」をJOINする』と考え始めると 分かり易い。 以下、5つのSQLは結果はすべて同じになる。括弧の位置や、NATURAL、USINGの使い分けに注意しながら 実行してみよう。 @ Select 学生番号, 氏名 ,学科コード ,学科名 ,学部名 From TT01_学生 NATURAL JOIN TM03_学科 NATURAL JOIN TM02_学部; A Select 学生番号, 氏名 ,学科コード ,学科名 ,学部名 From TT01_学生 NATURAL JOIN TM03_学科 JOIN TM02_学部 USING(学部コード); B Select 学生番号, 氏名 ,学科コード ,学科名 ,学部名 From (TT01_学生 NATURAL JOIN TM03_学科) JOIN TM02_学部 USING(学部コード); C Select 学生番号, 氏名 ,学科コード ,学科名 ,学部名 From TT01_学生 JOIN TM03_学科 USING(学科コード) JOIN TM02_学部 USING(学部コード); D Select 学生番号, 氏名 ,学科コード ,学科名 ,学部名 From (TT01_学生 JOIN TM03_学科 USING(学科コード)) JOIN TM02_学部 USING(学部コード); 2.上記のSQLはいずれも、同じ結果を返す。
|
【PR】 Oracle実験室監修 『Oracleアーキテクチャ鳥瞰図』 PDF (Oracleのアーキテクチャを一目で俯瞰できるイラスト) |
Home − 実験室 − No.0068 |