2つのクエリを比較しようとしています。
クエリ1:
SELECT a,b,c,d,e
FROM tableA
LEFT JOIN tableB
ON tableA.a=tableB.a
WHERE tableA.b=tableB.b AND tableA.c=tableB.c AND tableA.d=tableB.d AND tableA.e=tableB.e
クエリ2:
SELECT a,b,c,d,e
FROM tableA
LEFT JOIN tableB
ON tableA.a=tableB.a AND tableA.b=tableB.b AND tableA.c=tableB.c AND tableA.d=tableB.d
WHERE tableA.e=tableB.e
これら2つのクエリで同じ結果が得られると言ってもいいですか?
さらに、最初のクエリが、より大きなWHERE条件を実行するためのより大きなテーブルを作成すると言うのは正しいですか?一方、2番目のケースでは、より単純なテーブルがWHERE適用されたシンプルなテーブルが作成されます。
結果が同じであると仮定すると、どのクエリを優先する必要がありますか?明らかなパフォーマンスの問題はありますか?
わかった 私はあなたの言うことに従います。編集し
—
ジェフ
INNER JOINてパフォーマンスに関する質問を有効にした場合、
INNER JOINの場合、パフォーマンスに違いはありません。ただし、読みやすく、意図を適切に表現するには、で結合条件を使用し、
—
アーロンバートランド
ONでフィルター条件を使用する必要がありますWHERE。
@ypercube右、私はその状態を逃した。
—
ラマク
INNER JOINが、LEFT JOINこれを使用すると異なる結果が返されます。基本的に、あなたは上で追加した条件WHERE2番目のクエリには、あなたを変換するJOINにはINNER JOIN