私は、フィルタ条件をクエリのWHERE句に追加して、結合で返される行の数を最小限に抑えることを推奨しますが、 FROMではなくWHEREでフィルタを追加する必要があるかどうかを判断します。私が代わりにWHERE句でのAND b.ColDを追加した場合どのようなこのクエリでWHEREとFROMの間にフィルタを追加する
SELECT a.ColA, a.ColB, a.ColC, b.ColD, b.ColE
FROM TblA a INNER JOIN TblB b
On a.ColA = b.ColD
AND a.ColA = 'X'
AND a.ColB = 'Y'
WHERE b.ColD = 'ABC'
:たとえば?クエリをより効率的にすることはできませんか?私は時々両方のアプローチで結果が異なることがあることを知っていますが、なぜわからないのですか?
ありがとうございました。
tsqlタグで判断すると、SQL Serverを使用しています。管理スタジオにはクエリの実行計画を表示できるため、両方のバージョンの違いを比較できます。私の_guess_は大きな違いはありません。 –
これは重複していません:OPはフィルターについて質問しています.JOINではありません – gbn
@gbn OPの言葉(「フィルター」と「条件」など)が非常に重要なのかどうかはわかりません。OP基本的に[ここ](http://stackoverflow.com/q/1907335/880904)、[ここ](http://stackoverflow.com/q/1018952/880904)、[ここではhttp: /stackoverflow.com/q/1401889/880904)、[here](http://stackoverflow.com/q/15483808/880904)などを参照してください。それらのすべてが 'JOIN ... ON'を持っていて、'どこに? 'と尋ね、同様の答えをあなたのものに含めます。この質問に答えられているか、私たちは[この質問]を再開すべきかどうかは私には分かりますか(http://stackoverflow.com/q/13145275/880904)? –