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
これを使用すると異なる結果が返されます。基本的に、あなたは上で追加した条件WHERE
2番目のクエリには、あなたを変換するJOIN
にはINNER JOIN