Diferencia entre JOIN y INNER JOIN

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?

Solución

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.

Comentarios (5)

No, no hay diferencia, puro azúcar sintáctico.

Comentarios (5)

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 enLEFT OUTER JOINy nuncaLEFT JOIN, pero nunca utilizoINNER 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
Comentarios (3)