Pregunta LEFT JOIN vs. LEFT OUTER JOIN en SQL Server


Cuál es la diferencia entre LEFT JOIN y LEFT OUTER JOIN?


1227
2018-01-02 08:30


origen


Respuestas:


Según la documentación: FROM (Transact-SQL):

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

La palabra clave OUTER está marcado como opcional (entre corchetes), y lo que esto significa en este caso es que ya sea que lo especifique o no, no hace ninguna diferencia. Tenga en cuenta que, si bien los otros elementos de la cláusula join también están marcados como opcionales, dejando ellos out, por supuesto, hará la diferencia.

Por ejemplo, toda la parte de tipo de la JOIN cláusula es opcional, en cuyo caso el valor predeterminado es INNER si solo especifica JOIN. En otras palabras, esto es legal:

SELECT *
FROM A JOIN B ON A.X = B.Y

Aquí hay una lista de sintaxis equivalentes:

A LEFT JOIN B            A LEFT OUTER JOIN B
A RIGHT JOIN B           A RIGHT OUTER JOIN B
A FULL JOIN B            A FULL OUTER JOIN B
A INNER JOIN B           A JOIN B

También eche un vistazo a la respuesta que dejé en esta otra pregunta ASÍ: SQL left join vs multiple tables en FROM line?.

enter image description here


1796
2018-01-02 08:51



Para responder tu pregunta no hay diferencia entre LEFT JOIN   y LEFT OUTER JOIN, son exactamente iguales eso dijo ...

En el nivel superior hay principalmente 3 tipos de uniones:

  1. INTERIOR
  2. EXTERIOR
  3. CRUZAR

  1. UNIR INTERNAMENTE - obtiene datos si están presentes en ambas tablas.

  2. UNIÓN EXTERIOR son de 3 tipos:

    1. LEFT OUTER JOIN - obtiene datos si están presentes en la tabla de la izquierda.
    2. RIGHT OUTER JOIN - obtiene datos si están presentes en la tabla correcta.
    3. FULL OUTER JOIN - obtiene datos si están presentes en cualquiera de las dos tablas.
  3. CROSS JOIN, como su nombre lo sugiere, [n X m] que une todo a todo.
    Similar al escenario donde simplemente enumeramos las tablas para unir (en el FROM cláusula de la SELECT declaración), usando comas para separarlos.


Puntos a tener en cuenta:

  • Si solo mencionas JOIN entonces por defecto es un INNER JOIN.
  • Un OUTER unirse tiene que ser LEFT | RIGHT | FULL no puedes decir simplemente OUTER JOIN.
  • Puedes soltar OUTER palabra clave y solo decir LEFT JOIN o RIGHT JOIN o FULL JOIN.

Para aquellos que quieran visualizar esto de una mejor manera, por favor diríjase a este enlace: Una explicación visual de SQL se une


621
2017-12-09 18:05



¿Cuál es la diferencia entre left join y left outer join?

Nada. LEFT JOIN y LEFT OUTER JOIN son equivalentes.


274
2018-01-02 08:31



Lee mas en Representación Visual de uniones SQL

Visual Representation of SQL Joins


117
2017-10-28 23:02



Soy un DBA de PostgreSQL, por lo que pude entender la diferencia entre las uniones externas o externas, la diferencia es un tema que tiene una considerable discusión en todo internet. Hasta hoy nunca vi una diferencia entre esos dos; Así que fui más allá y trato de encontrar la diferencia entre esos. Al final leí toda la documentación al respecto y encontré la respuesta para esto,

Entonces, si observa la documentación (al menos en PostgreSQL), puede encontrar esta frase:

"Las palabras INNER y OUTER son opcionales en todas las formas. INNER es el predeterminado; LEFT, RIGHTy FULL implica una unión externa ". 

En otras palabras,

LEFT JOIN y LEFT OUTER JOIN SON LO MISMO

RIGHT JOIN y RIGHT OUTER JOIN SON LO MISMO

Espero que pueda ser un aporte para aquellos que todavía están tratando de encontrar la respuesta.


52
2017-08-30 02:33



Nada que decir en palabras al lado de esto:enter image description here


44
2017-08-12 22:05



Left Join y Left Outer Join son uno y el mismo. El primero es la abreviatura de este último. Lo mismo puede decirse sobre el Right Join y Right Outer Join relación. La demostración ilustrará la igualdad. Se han proporcionado ejemplos de trabajo de cada consulta a través de SQL Fiddle. Esta herramienta permitirá la manipulación manual de la consulta.

Dado

enter image description here

Izquierda Únete y Izquierda combinación externa

enter image description here

Resultados

enter image description here


Únete a la derecha y Conexión exterior derecha

enter image description here

Resultados

enter image description here


37
2018-05-22 17:09



Me resulta más fácil pensar en uniones en el siguiente orden:

  • CROSS JOIN - un producto cartesiano de ambas tablas. TODAS las uniones comienzan aquí
  • INNER JOIN - una CROSS JOIN con un filtro agregado.
  • OUTER JOIN - una UNIÓN INTERNA con elementos faltantes (de la tabla IZQUIERDA o DERECHA) agregado después

Hasta que descubrí este modelo (relativamente) simple, las UNIONES siempre fueron un poco más de arte negro. Ahora tienen perfecto sentido.

Espero que esto ayude más de lo que confunde.


34
2017-12-29 21:01



¿Por qué son IZQUIERDA / DERECHA e IZQUIERDA EXTERIOR / DERECHA EXTERIOR lo mismo? Vamos a explicar por qué este vocabulario. Comprenda que las uniones IZQUIERDA y DERECHA son casos específicos de la unión EXTERIOR, y por lo tanto no podría ser más que DERECHA EXTERIOR IZQUIERDA / EXTERIOR. La unión OUTER también se llama COMPLETO Uniones EXTERNAS opuestas a IZQUIERDA y DERECHA que son PARCIAL resultados de la unión OUTER. En efecto:

Table A | Table B     Table A | Table B      Table A | Table B      Table A | Table B
   1    |   5            1    |   1             1    |   1             1    |   1
   2    |   1            2    |   2             2    |   2             2    |   2
   3    |   6            3    |  null           3    |  null           -    |   -
   4    |   2            4    |  null           4    |  null           -    |   -
                        null  |   5             -    |   -            null  |   5
                        null  |   6             -    |   -            null  |   6

                      OUTER JOIN (FULL)     LEFT OUTER (partial)   RIGHT OUTER (partial)

Ahora está claro por qué esas operaciones tienen alias, y está claro que solo existen 3 casos: INTERIOR, EXTERIOR, CRUZADA. Con dos subcasos para OUTER. El vocabulario, la forma en que los maestros explican esto, así como algunas respuestas anteriores, a menudo hacen que parezca que hay muchos tipos diferentes de unión. Pero en realidad es muy simple.


26
2018-04-17 21:08



Hay principalmente tres tipos de JOIN

  1. Interno: recupera datos, que están presentes en ambas tablas
    • Solo JOIN significa UNIÓN INTERNA
  2. Exterior: son de tres tipos

    • IZQUIERDA EXTERIOR - - capta datos presentes solo en la tabla izquierda y en la condición correspondiente
    • RIGHT OUTER - - capta datos presentes solo en la tabla correcta y en la condición correspondiente
    • FULL OUTER - - capta datos presentes en una o ambas tablas
    • (IZQUIERDA o DERECHA o LLENA) OUTER JOIN se puede escribir sin escribir "EXTERIOR"
  3. Cross Join: une todo a todo


15
2018-01-18 12:29



Para responder tu pregunta

En Sql Server se une la sintaxis EXTERIOR es opcional

Se menciona en el artículo msdn: https://msdn.microsoft.com/en-us/library/ms177634(v=sql.130).aspx

La siguiente lista muestra sintaxis equivalentes de unión con y sin EXTERIOR

LEFT OUTER JOIN => LEFT JOIN
RIGT OUTER JOIN => RIGHT JOIN
FULL OUTER JOIN => FULL JOIN

Otras sintaxis equivalentes

INNER JOIN => JOIN
CROSS JOIN => ,

Recomiendo encarecidamente Dotnet Mob Artice: Se une al servidor Sql enter image description here


13
2018-06-25 04:05