Diferencia entre UNIRSE y UNIRSE INTERIOR
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
¿Existe alguna diferencia entre las declaraciones de desempeño o no?
¿ Difiere entre diferentes implementaciones de SQL ?
Son funcionalmente equivalentes, pero INNER JOIN
pueden ser un poco más claros de leer, especialmente si la consulta tiene otros tipos de combinación (es decir, LEFT
o RIGHT
o CROSS
) incluidos.
No, no hay diferencia, puro azúcar sintáctico .
UNIÓN INTERNA = UNIRSE
INNER JOIN es el valor predeterminado si no especifica el tipo cuando usa la palabra JOIN.
También puede utilizar UNIÓN EXTERIOR IZQUIERDA o UNIÓN EXTERIOR DERECHA, en cuyo caso la palabra EXTERIOR es opcional, o puede especificar UNIÓN CRUZADA.
O
Para una UNIÓN INTERNA, la sintaxis es:
SELECT ... FROM TableA [INNER] JOIN TableB
(En otras palabras, la palabra clave INNER es opcional ; los resultados son los mismos con o sin ella).
¿Difiere entre diferentes implementaciones de SQL?
Sí, Microsoft Access no permite solo archivos join
. Requiere inner join
.
De manera similar con OUTER JOINs
, la palabra "OUTER"
es opcional. Es la palabra clave LEFT
o RIGHT
la que hace que JOIN
an "OUTER" JOIN
.
Sin embargo, por alguna razón siempre uso "OUTER"
as in LEFT OUTER JOIN
y nunca LEFT JOIN
, pero nunca uso INNER JOIN
, sino que simplemente uso "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