16.20 - 例: EXISTSと相関SUBQUERY - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL関数、演算子、式および述部

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Release Date
2019年3月
Content Type
プログラミング リファレンス
Publication ID
B035-1145-162K-JPN
Language
日本語 (日本)

いずれかの部門が提供するクラスの少なくとも1つに登録しているすべての生徒の名前を選び出してみましょう。

   SELECT SName, SNo 
   FROM student s 
   WHERE EXISTS 
    (SELECT * 
     FROM department d 
     WHERE EXISTS 
      (SELECT * 
       FROM course c, registration r, class cl 
       WHERE c.Dept=d.Dept 
       AND c.CNo=r.CNo 
       AND s.SNo=r.SNo
       AND r.CNo=cl.CNo 
       AND r.Sec=cl.Sec));

生徒テーブルの内容は、以下のようになります。

Sname SNo
Helen Chu 1
Alice Clark 2
Kathy Kim 3
Tom Brown 4

部門テーブルの内容は、以下のようになります。

Dept DeptName
100 Computer Science
200 Physic
300 Math
400 Science

コース テーブルの内容は、以下のようになります。

CNo Dept
10 100
11 100
12 200
13 200
14 300

クラス テーブルの内容は、以下のようになります。

CNo Sec
10 1
11 1
12 1
13 1
14 1

登録テーブルの内容は、以下のようになります。

CNo SNo Sec
10 1 1
10 2 1
11 3 1
12 1 1
13 2 1
14 1 1

以下の行が返されます。

   SName              SNo
   -----------        ---
   Helen Chu1           *
   Alice Clark          2
   Kathy Kim            3