Beide verbindingen geven mij dezelfde resultaten:
SELECT * FROM table JOIN otherTable ON table.ID = otherTable.FK
vs
SELECT * FROM table INNER JOIN otherTable ON table.ID = otherTable.FK
Is er enig verschil tussen de verklaringen in prestaties of anderszins?
Verschilt het tussen verschillende SQL implementaties?
Ze zijn functioneel gelijkwaardig, maar INNER JOIN
kan een beetje duidelijker zijn om te lezen, vooral als de query andere join types (d.w.z. LEFT
of RIGHT
of CROSS
) in zich heeft.
Evenzo bij OUTER JOINs
, is het woord "OUTER"
optioneel. Het is het LEFT
of RIGHT
sleutelwoord dat van de JOIN
een "OUTER" JOIN
maakt.
Om de een of andere reden gebruik ik echter altijd "OUTER"
als in LEFT OUTER JOIN
en nooit LEFT JOIN
, maar ik gebruik ook nooit INNER JOIN
, maar gewoon "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