NOT
備考
NOT キーワードと EXISTS キーワードを一緒に使用すると、サブクエリの結果に行が存在しないことを検査できます。外部クエリが評価する各行について、PSQL で、サブクエリからの関連する行があるかどうかが確認されます。PSQL は、外部クエリの中でサブクエリからの関連する行に対応する各行を、ステートメントの結果テーブルから除外します。
IN 演算子と一緒に NOT キーワードを使用すると、外部クエリの結果が、サブクエリの結果に含まれないかどうかを検査できます。ステートメントの結果テーブルには、外部クエリが返す行で、サブクエリ内に関連する行が存在しないものだけが含まれます。
例
次のステートメントは、どの講座にも登録されていない学生のリストを返します。
SELECT * FROM Person p WHERE NOT EXISTS
(SELECT * FROM Student s WHERE s.id = p.id
AND Cumulative_Hours = 0)
============
IN を含むように、このステートメントを書き直すことができます。
SELECT * FROM Person p WHERE p.id NOT IN
(SELECT s.id FROM Student s WHERE Cumulative_Hours = 0)
関連項目