• ベストアンサー

結合と副問い合わせの違い

結合は最初に結合された一時的なテーブルを絞りこむ 副問い合わせは行を絞りこんだ後に実行されるかんじなのでしょうか

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

一番の違いは結合は二つのテーブルのデータ双方を抽出結果に含められるのに対し、相関副問い合わせによるクエリでは一方のテーブルからしかデータを抽出できないことです。 後、評価順序としては外部結合の場合、外部結合がされたのちにWHERE条件の判定が行われます。 相関副問い合わせを用いる場合は多くのRDBMSでは駆動表に対する他のWHERE条件の判定を行った後に副問い合わせの判定を行う傾向がありますが、ORACLEで「PUSH_SUBQ」ヒントを使用したりすると副問い合わせを優先的に判定条件に使用したりできます。 後、「結合は最初に結合された一時的なテーブルを絞りこむ」イメージではなく、可能な限り結合された行を連続的に判定していきます。ソートや集約演算など一時テーブルを作らざるを得ない限りはできるだけ避けている実装が大半だと思います。

110110110110
質問者

お礼

大変わかり易い回答ありがとうございました。

関連するQ&A