副問い合わせ Table "public.zoob" Table "public.animal"
testdb=# \d zoob
Table "public.zoob"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
name | text | | |
num | integer | | |
testdb=# SELECT * FROM zoob;
name | num
----------+-----
サル | 22
コアラ | 2
キリン | 3
ライオン | 2
(4 rows)
testdb=# \d animal
Table "public.animal"
Column | Type | Collation | Nullable | Default
--------+------+-----------+----------+---------
name | text | | |
testdb=# SELECT * FROM animal;
name
----------
コアラ
キリン
ライオン
チーター
イノシシ
サル
(6 rows)
testdb=# SELECT * FROM animal WHERE EXISTS (SELECT * FROM zoob WHERE num = 5);
name
------
(0 rows)
EXISTS演算子は「副問い合わせの結果が存在するかどうか」を判定します。
上記から、副問い合わせには対象テーブル「animal」に関する条件が指定されて言い無いことが分かります。副問い合わせで取得されるデータは0件であり、判定は偽となることからデータは取得されません。