ここからは今までのEMP表に加えDEPT(部門)表を使用します。
DEPTNO | DNAME | LOC |
10 | ACCOUNTING | NEW YORK |
20 | RESEARCH | DALLAS |
30 | SALES | CHICAGO |
40 | OPERATIONS | BOSTON |
SELECT | EMP.EMPNO,EMP.ENAME,DEPT.DEPTNO,DEPT.DNAME |
FROM | EMP,DEPT |
WHERE | EMP.DEPTNO = DEPT.DEPTNO |
複数表からの問い合わせを行う場合は、FROMの後ろに表名を「,(カンマ)」で区切って記述します。
HERE条件のEMP.DEPTNO = DEPT.DEPTNOで、EMP表のDEPTNOとDEPT表のDEPTNOが等しい列を連結するという意味になります。
SELECT文の直後の項目名に、「表明.項目名」という記述をしているのは、表を連結して両方の表に同じ項目名があった場合、どちらの項目を表示するかを指定するためです。(DEPTNOとだけ指定されるとDBMSはどちらを表示するかがわからなくてエラーになります。)
連結した表からさらに条件で絞る場合は、WHERE条件にAND EMP.SAL > 1500のように記述します。
それでは実習です。2題出題します。
SELECT | E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME |
FROM | EMP E,DEPT D |
WHERE | E.DEPTNO = D.DEPTNO |
上記のSQLは「条件結合」とまったく同じ意味です。異なる点は表にエイリアス(別名)を付けて記述を簡便化している点です。
DEPTやEMPのように短い表名ですとあまり便利さがわかりませんが、実務においては「前月末全店売上高集計」のように非常に長いテーブル名があります。そのようなときには非常に便利です。
それでは実習です。1題出題します。
これで [ 複数表への問合せ ] は終了です。