大雑把な結合の3つのやり方

大雑把な結合とは、「AのうちBにある/ないもの」とする。

  • SELECT * FROM A WHERE EXISTS (SELECT * FROM B WHERE A.hoge = B.hoge) / NOT EXISTS (...)
  • SELECT * FROM A WHERE A.hoge IN (SELECT hoge FROM B) / NOT IN (..)
  • SELECT * FROM A LEFT JOIN B ON A.hoge = B.hoge WHERE B IS NOT NULL / IS NULL

意味的には1つ目が正しいんだけど、それぞれ計画が異なって、検索の速度も違ったりする。
…で、大丈夫だよね。