Diferencia entre UNIRSE y UNIRSE INTERIOR

Resuelto driis asked hace 15 años • 7 respuestas

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 ?

driis avatar Feb 19 '09 21:02 driis
Aceptado

Son funcionalmente equivalentes, pero INNER JOINpueden ser un poco más claros de leer, especialmente si la consulta tiene otros tipos de combinación (es decir, LEFTo RIGHTo CROSS) incluidos.

palehorse avatar Feb 19 '2009 14:02 palehorse

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

Quassnoi avatar Feb 19 '2009 14:02 Quassnoi

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).

net_prog avatar Feb 28 '2012 08:02 net_prog

¿Difiere entre diferentes implementaciones de SQL?

Sí, Microsoft Access no permite solo archivos join. Requiere inner join.

Michał Powaga avatar May 15 '2012 13:05 Michał Powaga

De manera similar con OUTER JOINs, la palabra "OUTER"es opcional. Es la palabra clave LEFTo RIGHTla que hace que JOINan "OUTER" JOIN.

Sin embargo, por alguna razón siempre uso "OUTER"as in LEFT OUTER JOINy 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
Kristen avatar Feb 19 '2009 15:02 Kristen