Ambas uniones me darán los mismos resultados:
SELECT * FROM table JOIN otherTable ON table.ID = otherTable.FK
vs
SELECT * FROM table INNER JOIN otherTable ON table.ID = otherTable.FK
¿Hay alguna diferencia entre las declaraciones en el rendimiento o de otra manera?
¿Difiere entre las diferentes implementaciones de SQL?
Son funcionalmente equivalentes, pero INNER JOIN
puede ser un poco más claro de leer, especialmente si la consulta tiene otros tipos de join (por ejemplo, LEFT
o RIGHT
o CROSS
) incluidos en ella.
Del mismo modo, con los OUTER JOINs
, la palabra OUTER
es opcional. Es la palabra clave Izquierda
o Derecha
la que convierte al JOIN
en un OUTER JOIN
.
Sin embargo, por alguna razón, siempre utilizo "OUTER" como en
LEFT OUTER JOINy nunca
LEFT JOIN, pero nunca utilizo
INNER JOIN, sino que simplemente utilizo
"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