2011-12-06 4 views
-2

可能性の重複:
Is it better to do an equi join in the from clause or where clauseは、これら2つのSQLクエリとの違いは何ですか - SQL Serverの

私は2つのSQLクエリを次のようしています。これら二つの違いを私に説明してもらえますか?

QUERY:1

SELECT a.*, b.* 
FROM Table1 a 
INNER JOIN Table2 b 
ON a.id = b.id 
AND a.col = 'value' 

QUERY:2

SELECT a.*, b.* 
FROM Table1 a 
INNER JOIN Table2 b 
ON a.id = b.id 
WHERE a.col = 'value' 

おかげ

+0

これは唯一の違いは、 'INNER JOIN'は' GROUP BY ALL'を使用している場合です。 –

+0

@ MartinsSmith詐欺の良いキャッチ、私は見つけられませんでした – JNK

答えて

4

何も大文字と小文字の区別がオンフィルタリング、INNER JOINについてデータベース

+0

私はAND AND WHERE条件を探しています。どちらを他のものよりもいつ使うべきですか? – user1054625

2

にオンされていない限りJOIN条件と比較したときのフィルタリングWHERE句で同じ結果が得られるはずです。

これがOUTER JOINの場合、最初のものはソーステーブル内の結果を事前フィルタリングするので、結果は異なります。JOIN

0

はい、すべてはほとんど同じです。 IDフィールドの綴りが正しくない場合、大文字と小文字を区別するデータベースはエラーを返します。

1

この場合は同じ結果ですが、同じことではありません。 WHEREは選択全体に適用されますが、ON ... ANDは内部結合(実際にはおそらく同じものですが、外部結合ではありません)のみです。

0

違いは純粋に文体です。個人的には、「JOIN ... ON a = b」セクションの下にテーブル結合を実行するためのキーとなる節を置いて、WHERE句の下での特定のクエリフィルタリングと関係がある節を入れたい。しかし、あなたが内側の結合について話している限り、それを一方的にまたは他の方法で行う技術的理由はありません。

関連する問題