SQL 構文リファレンス : NOT
 
このページをシェアする                  
NOT
備考
NOT キーワードと EXISTS キーワードを一緒に使用すると、サブクエリの結果に行が存在しないことを検査できます。外部クエリが評価するすべての行について、PSQL はサブクエリ内に関連する行が存在するかどうかを検査します。PSQL は、外部クエリの結果のうち、サブクエリ内の関連する行に対応する各行を、ステートメントの結果テーブルから除外します。
NOT と IN 演算子を組み合わせることにより、外部クエリの結果が、サブクエリの結果に含まれないかどうかを検査できます。結果テーブルには、外部クエリが返す行で、サブクエリ内に関連する行が存在しないものだけが含まれます。
次のステートメントは、どの講座にも登録されていない学生のリストを返します。
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)
関連項目
SELECT
EXISTS
IN