副問い合わせについて

  • 副問い合わせについて
    • 以下のSQLで括弧にあたる部分が副問い合わせというらしい。
    • select * from hoge where id = (select id from foo where id = 2);
    • 副問い合わせの結果は上記のようにwhere句に=を使っている場合、一件でないとエラーになる。
  • メリット
    • ホスト言語側の複雑さが緩和されるということかなぁ。。副問い合わせを使わないとホスト言語側でがんばらないといけないし。。性能的にはどうなんでしょ。。
  • 複数行副問い合わせについて
    • 副問い合わせの結果が複数の場合は、複数行副問い合わせというらしいが、=のかわりにin、any,allなんかを使うらしい。
  • inについて
    • id in (1,2,3)だったら、idが1か2か3という条件になる。
  • anyについて
    • id > any(1,2,3)だったら、id>1かid>2かid>3という条件になる。つまり、この場合は、id > 1と同じ意味と思ってよい。
  • allについて
    • 調査中。