Ces deux jointures me donneront les mêmes résultats:
SELECT * FROM table JOIN otherTable ON table.ID = otherTable.FK
contre
SELECT * FROM table INNER JOIN otherTable ON table.ID = otherTable.FK
Y a-t-il une différence entre les déclarations de performance ou autre?
Cela diffère-t-il entre les différentes implémentations SQL ?
sql
sql-server
join
inner-join
driis
la source
la source
Réponses:
Ils sont fonctionnellement équivalents, mais
INNER JOIN
peuvent être un peu plus clairs à lire, surtout si la requête contient d'autres types de jointures (c'estLEFT
-à- dire ouRIGHT
ouCROSS
).la source
Non, il n'y a pas de différence, du sucre syntaxique pur .
la source
INNER
relève de cette définition.INNER
ne rend pas la requête plus facile à lire. Pour autant que je sache, celaJOIN
pourrait bien vouloir direLEFT JOIN
si cela n'était pas clarifié par les réponses ici.INNER JOIN = JOIN
OU
la source
Oui, Microsoft Access ne permet pas seulement
join
. Cela nécessiteinner join
.la source
De même avec
OUTER JOINs
, le mot"OUTER"
est facultatif. C'est le mot-cléLEFT
ouRIGHT
qui fait leJOIN
an"OUTER" JOIN
.Cependant, pour une raison quelconque, j'utilise toujours
"OUTER"
comme dansLEFT OUTER JOIN
et jamaisLEFT JOIN
, mais je n'utilise jamaisINNER JOIN
, mais plutôt j'utilise simplement"JOIN"
:la source
Comme les autres réponses l'indiquent déjà, il n'y a pas de différence dans votre exemple.
Le bit de grammaire pertinent est documenté ici
Montrant que tous sont facultatifs. La page précise en outre que
La grammaire indique également qu'il y a une fois où cela
INNER
est nécessaire. Lors de la spécification d'un indice de jointure.Voir l'exemple ci-dessous
la source