理系学生日記

おまえはいつまで学生気分なのか

忍者TOOLS

相関サブクエリって FROM 句には使えないんですね

相関サブクエリというと、内部クエリから外部クエリのテーブル(カラム)を参照するってヤツで、みなさん毎日相関サブクエリのことばかり考えていらっしゃることでしょうけど、そういうのキモいかもしれないからよくかんがえたほうがいいです。
ちなみにですけど、相関サブクエリについては最近の Web+DB Press にも取り上げられたりしてました。

WEB+DB PRESS Vol.53

WEB+DB PRESS Vol.53

まぁそういうのはわりかし関係なくて、今日は相関サブクエリって FROM 句に使えないんだっていうの気付かなくて 2, 30 分悶々としてた。もう忘れたけど、簡易化するとたしかこんな形状にだったように記憶してる。

select *
from db a,
( select hoge, fuga
         from db b
         where a.c1 = b.c2
           and case .....
) x
where 
blah blah blah

FROM 句のサブクエリなんてのは相当早く評価されるわけで、サブクエリ側からすると db a なんて見えるはずがないのか。厳密な意味では、これ相関サブクエリとは呼ばない気もする。