例: EXISTSと相関SUBQUERY - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL関数、式、および述部

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/tpt1555966086716.ditamap
dita:ditavalPath
ja-JP/tpt1555966086716.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