WHERE EXISTSの使用方法について

エンジン
2014-01-06 18:44 1805 1
SELECT 列
FROM テーブルA
WHERE EXISTS (SELECT *FROM テーブルB WHERE 条件)

というクエリですが、WHERE EXISTSのサブクエリのSELECTは*でいいのでしょうか?
結果に一つでも値があれば(NULLじゃなければ?)TRUEが返るのであれば、NULLが入らない主キーのみを選択すればいいのではないのでしょうか?

コメント

2014年 01月 10日 (17:37)
こんにちは。
イノ(inno)です。

EXISTSは「true」もじくは「false」のみ認識します。
つまり EXISTS 後に記述されている(SELECT TOP 1 1 FROM テーブル WHERE 条件)の結果が「true」か「false」かを分かればいいんです~
ですので、「*」よりはTOP 1 1 を使うことをおすすめします。
TOP 1 を記述して1件のみ取得して「true」か「false」かを確認します。
また「TOP 1」後は私の場合「1」と記述しますが、カラム名を書いても問題ありません。