UNIRSE A UNIRSE INTERNO Y UNIRSE COMPLETAMENTE EXTERIOR

27

Sé que hay una diferencia entre INNER JOINy FULL OUTER JOIN, puedo verlo, pero, ¿cuál es la diferencia entre los dos siguientes: JOIN ... ON...y INNER JOIN...ON...y todavía aún JOIN...ON...vsFULL OUTER JOIN...ON...

La razón es que creo que tal vez solo usar JOINes desordenar una consulta en la que estoy trabajando que se publica en SO, enlace a la pregunta AQUÍ.

Entonces, ¿cuál es básicamente la diferencia sintáctica entre las operaciones del conjunto actual?

Gracias,

MCP_infiltrator
fuente
1
"Publicación cruzada" es publicar la misma pregunta en diferentes foros. Publicar un enlace está bien y es deseable.
choroba
Ok, publicaré un enlace a la pregunta, mi código es devolver muchos duplicados y me está volviendo loco ... Ni siquiera he tomado mi café de la mañana todavía lol
MCP_infiltrator
44
@MCP_infiltrator eche un vistazo a probablemente la mejor explicación que existe: codinghorror.com/blog/2007/10/…
mkk
Si el verdadero problema es que su código está devolviendo demasiados duplicados, es posible que desee hacer otra pregunta donde este es el punto principal. Y es posible que desee publicar su código. Cuando he ayudado a personas con problemas duplicados en el pasado, generalmente se debe a condiciones de unión incorrectas, u ocasionalmente debido a una mala asignación entre el modelo de datos SQL y el modelo de datos relacionales.
Walter Mitty
Hola @WalterMitty, la pregunta está publicada en SO, creo que mis uniones son el problema, pero en otra nota también tenía curiosidad, solo tengo 6 meses para escribir SQL y autoaprendizaje, el enlace está en la pregunta.
MCP_infiltrator

Respuestas:

33

JOINy INNER JOINson lo mismo, la palabra clave interna es opcional ya que todas las combinaciones se consideran combinaciones internas a menos que se especifique lo contrario. La diferencia entre JOINy FULL OUTER JOINes la misma que la diferencia entre INNER JOINy FULL OUTER JOIN.

An INNER JOINsolo devolverá filas coincidentes si una fila de la tabla A coincide con muchas filas de la tabla B, la fila de la tabla A se repetirá con cada fila de la tabla B y viceversa.

A FULL OUTER JOINdevolverá todo lo que hace una combinación interna y devolverá todas las filas no coincidentes de cada tabla.

Ryathal
fuente
55
Gracias, no lo sabía JOINy INNER JOINeran declaraciones equivalentes.
MCP_infiltrator
77
La mejor práctica es escribir explícitamente INNER JOIN para evitar confusiones.
Neil