2009年11月21日土曜日

副問い合わせにおける4つの選択肢

大抵のデータベースでよく使うと思うけど、
この中から常に実行結果を迷うときがよくあります。
1.
SELECT DISTINCT D.GroupNO
FROM Group D , Person E
WHERE D.GroupNO = E.GroupNO;
2.
SELECT GroupNO
FROM Group
WHERE GroupNO IN
(SELECT GroupNO FROM Person);
3.
SELECT GroupNO
FROM Group T1
WHERE EXISTS (SELECT GroupNO FROM Person T2 WHERE T1.GroupNO = T2.GroupNO)
4.
プログラムの処理を見直す。


まあ実行結果と相談なんだけど。
確認する余裕がない場合は、個人HPなら3か4が大抵正解で
仕事なら1で書いておけば、後々他の人がいじりやすいと思う。