2

2 番目のクエリは最初のクエリの短縮形ですか? 2番目のものは暗黙のJOINのようなことをしていますか?? どちらも同じ結果を返します...どちらを使用するのが良いか知りたいです。SQL Server 2008 を使用しています。回答ありがとうございます。

最初のクエリ

SELECT b.columnOne, a.columnTwo
FROM tableA As a JOIN tableB As b ON a.id = b.id 

2 番目のクエリ

SELECT b.columnOne, a.columnTwo 
FROM tableA As a, tableB as b
WHERE a.id = b.id
4

4 に答える 4

4

それらは同一です。2 つ目はANSI 標準結合を使用していませんが、最初のものは使用しています。

すべてではありませんが、多くの開発者は、最初のバージョン (ANSI 標準) を好みます。これは、JOINロジックが 1 か所に保持されるためです。これにより、フィルタ ロジックWHEREを句に保持できます。

于 2012-04-05T13:04:32.807 に答える
1

最初のクエリは正しいものです。
エンジンはテーブルを結合していることを認識しているため、2 番目のクエリの実行計画は最初のクエリと同じように「変換」されます。この場合、それらは同じです。
とにかく、複数の関連するテーブルを含むクエリを使用する場合は、常にJOIN構文を使用する必要があります (このために生まれたため) WHERE: 後者では、エンジンがJOIN構文に変換できない場合、乗算するため巨大なクエリが作成される可能性があります各テーブル内のレコード数 (デカルト積と呼ばれます)。

于 2012-04-05T13:04:01.573 に答える
0

私の意見では、結合を個別に指定する (最初の形式) 方がクリーンです。次に、検索条件を WHERE 句に追加できます。しかし、はい、2 つの形式は同等です。

于 2012-04-05T13:05:31.830 に答える
0

どちらのクエリも同じ結果を返します。

MS SQL Joins に関する記事をご覧ください - http://www.codeproject.com/Articles/102805/SQL-Joins

最初のクエリは正しいものであり、結合を使用して条件にさらにフィルターを適用できます-左外部結合、右外部結合、完全外部結合など

于 2012-04-05T13:05:33.087 に答える