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