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