1236

これらの結合は両方とも同じ結果になります。

SELECT * FROM table JOIN otherTable ON table.ID = otherTable.FK

vs

SELECT * FROM table INNER JOIN otherTable ON table.ID = otherTable.FK

パフォーマンスなどのステートメントに違いはありますか?

異なるSQL実装間で違いはありますか?

4

6 に答える 6

1338

これらは機能的に同等ですが、特にクエリに他の結合タイプ (またはまたは) が含まれているINNER JOIN場合は、少し読みやすくなります。LEFTRIGHTCROSS

于 2009-02-19T14:50:21.047 に答える
300

いいえ、違いはありません。純粋な構文糖衣です。

于 2009-02-19T14:48:41.440 に答える
186

内部結合 = 結合

JOINという単語を使用するときにタイプを指定しない場合、INNER JOIN がデフォルトになります。

また、LEFT OUTER JOIN または RIGHT OUTER JOIN を使用することもできます。この場合、OUTER という単語はオプションです。CROSS JOIN を指定することもできます。

また

内部結合の構文は次のとおりです。

SELECT ...
FROM TableA
[INNER] JOIN TableB

(つまり、「INNER」キーワードはオプションです。結果は、キーワードを使用しても使用しなくても同じです)

于 2012-02-28T08:23:14.833 に答える
68

異なるSQL実装間で違いはありますか?

はい、MicrosoftAccessでは許可されていませんjoin。が必要inner joinです。

于 2012-05-15T13:33:06.427 に答える
58

と同様にOUTER JOINs、単語"OUTER"はオプションです。anを作るのはLEFTorRIGHTキーワードです。JOIN"OUTER" JOIN

ただし、何らかの理由で常に"OUTER"as inLEFT OUTER JOINと neverLEFT JOINを使用しますが、決して使用せずINNER JOIN、単に使用します"JOIN":

SELECT ColA, ColB, ...
FROM MyTable AS T1
     JOIN MyOtherTable AS T2
         ON T2.ID = T1.ID
     LEFT OUTER JOIN MyOptionalTable AS T3
         ON T3.ID = T1.ID
于 2009-02-19T15:09:36.257 に答える