Ces deux jointures me donneront les mêmes résultats :
SELECT * FROM table JOIN otherTable ON table.ID = otherTable.FK
vs
SELECT * FROM table INNER JOIN otherTable ON table.ID = otherTable.FK
Y a-t-il une différence entre les déclarations en termes de performance ou autre ?
Y a-t-il une différence entre les différentes implémentations de SQL ?
Ils sont fonctionnellement équivalents, mais INNER JOIN
peut être un peu plus clair à lire, surtout si la requête contient d'autres types de jointure (c'est-à-dire LEFT
ou RIGHT
ou CROSS
).
De même, avec les OUTER JOINs
, le mot "OUTER"
est facultatif. C'est le mot-clé LEFT
ou RIGHT
qui fait de la JOIN
une "OUTER" JOIN
.
Cependant, pour une raison quelconque, j'utilise toujours "OUTER"
comme dans LEFT OUTER JOIN
et jamais LEFT JOIN
, mais je n'utilise jamais INNER JOIN
, je me contente d'utiliser "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