Pregunta

Tanto estas uniones me dará 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 de rendimiento o de otro tipo?

¿Difiere entre las distintas aplicaciones de SQL?

¿Fue útil?

Solución

Ellos son funcionalmente equivalentes, pero INNER JOIN pueden ser un poco más claro de leer, especialmente si la consulta tiene otro tipos de combinación (es decir LEFT o RIGHT o CROSS) incluidos en el mismo.

Otros consejos

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

combinación interna = UNEN

  

INNER JOIN es la por defecto si no se especifica el tipo cuando se utiliza la palabra JOIN.

     

Puede también uso LEFT OUTER JOIN o RIGHT OUTER JOIN, en cuyo caso la palabra exterior es opcional,   o puede especificar CROSS JOIN.

o

  

Para una combinación interna, la sintaxis es:

     

SELECT ...
  Desde la Tabla
  [INTERIOR] JOIN TableB

     

(en otras palabras, la palabra clave "interior" es opcional - los resultados son los mismos   con o sin ella)

Lo mismo ocurre con OUTER JOINs, la palabra "OUTER" es opcional. Es la palabra clave o LEFT RIGHT que hace que el JOIN un "OUTER" JOIN.

Sin embargo, por alguna razón siempre uso "OUTER" como en LEFT OUTER JOIN y nunca LEFT JOIN, pero nunca uso INNER JOIN, sino que sólo tiene que utilizar "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
  

¿Difiere entre las distintas aplicaciones de SQL?

Sí, Microsoft Access no permite simplemente join. Se requiere inner join .

Como las otras respuestas ya afirman que no hay diferencia en su ejemplo.

El bit correspondiente de la gramática es documentado aquí

<join_type> ::= 
    [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
    JOIN

mostrando que todos son opcionales. El anuncio Más aclara que

  

INNER Especifica se devuelven todos los correspondientes pares de filas. Los descartes   filas de ambas tablas sin igual. Cuando no se especifica tipo de combinación, esto   es el valor predeterminado .

La gramática hace también indican que hay un momento en el que el INNER es requerida sin embargo. Cuando se especifica una sugerencia de combinación.

Consulte el ejemplo siguiente

CREATE TABLE T1(X INT);
CREATE TABLE T2(Y INT);

SELECT *
FROM   T1
       LOOP JOIN T2
         ON X = Y;

SELECT *
FROM   T1
       INNER LOOP JOIN T2
         ON X = Y;

 introducir descripción de la imagen aquí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top