EXISTS述語
特定のtableのcolumnの値が、別のtableのcolumnに存在するかどうかを確認したい時に使う
EXISTSの中で見るtableとJOINしているかどうかで挙動が変わる
結合しない場合、exists内のSQLで値が存在したとき、外側のSQLが実行される
exists内のSQLで値が存在しないときは、外側のSQLは実行されない
存在判定
結合した場合、外側のSQLが実行されてexists内のSQLが実行される
こんなわけわからん命名したの誰やねん

Oracleでは全く同じという記事を見かけた

subqueryって何を返すの?
0/1でいいの?
existsって述語だから返り値はbooleanだと思うけど、
subqueryが SELECT * ..
だとちょっとわかりにくい気がする
SELECT 1 ..
でいいのかな
というか理想的には SELECT
句自体が不要な気がする
構文として正しいのかわからないけど
sqlSELECT *
FROM table_a AS ta
WHERE EXISTS (
SELECT 1
FROM table_b AS tb
WHERE tb.col1 = ta.col1
);
tb.col1の中にta.col1と同じ値があれば、それを取得する
taの中から、条件にあるものを取りたい
その条件が、tb.col1と同じものであるかどうか
NOT EXISTS
とかは、JOIN使えば代替できそうな気がするけどどうなんだろう
#??パフォーマンス的にもどちらが良いのだろう