例: EXISTSと相関SUBQUERY - Teradata Database - Teradata Vantage NewSQL Engine - EXISTS/NOT EXISTS関数の例: EXISTSと相関SUBQUERY。

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/xzf1512079057909.ditamap
dita:ditavalPath
ja-JP/xzf1512079057909.ditaval
dita:id
B035-1145
Product Category
Software
Teradata Vantage

いずれかの部門が提供するクラスの少なくとも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