Simplemente jugando con consultas y ejemplos para comprender mejor las combinaciones. Me doy cuenta de que en SQL Server 2008, las siguientes dos consultas dan los mismos resultados:
SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name
SELECT * FROM TableA
FULL JOIN TableB
ON TableA.name = TableB.name
¿Están realizando exactamente la misma acción para producir los mismos resultados, o me encontraría con resultados diferentes en un ejemplo más complicado? ¿Es esta terminología simplemente intercambiable?
sql
sql-server-2008
tsql
join
CptSupermrkt
fuente
fuente
Respuestas:
De hecho, son iguales.
LEFT OUTER JOIN
es igual queLEFT JOIN
yRIGHT OUTER JOIN
es igual queRIGHT JOIN
. Es una forma más informativa de compararINNER Join
.Consulte este artículo de Wikipedia para obtener más detalles.
fuente
De MSDN
Los
full outer join
ofull join
devuelve todas las filas de ambas tablas, la adecuación de las filas siempre que sea un partido se pueden hacer y colocaciónNULL
s en los lugares donde no existe una fila coincidente.fuente
Es cierto que algunas bases de datos reconocen la palabra clave OUTER. Algunos no. Cuando se reconoce, suele ser una palabra clave opcional . Casi siempre, FULL JOIN y FULL OUTER JOIN hacen exactamente lo mismo. (No puedo pensar en un ejemplo en el que no lo hagan. ¿Alguien más puede pensar en uno?)
Esto puede hacer que se pregunte: "¿Por qué sería una palabra clave si no tiene significado?" La respuesta se reduce al estilo de programación.
En los viejos tiempos, los programadores se esforzaban por hacer su código lo más compacto posible. Cada carácter significó un mayor tiempo de procesamiento. Usamos variables de 1, 2 y 3 letras. Usamos años de 2 dígitos. Eliminamos todos los espacios en blanco innecesarios. Algunas personas todavía programan de esa manera. Ya no se trata del tiempo de procesamiento. Se trata más de codificación rápida.
Los programadores modernos están aprendiendo a usar variables más descriptivas y a incluir más comentarios y documentación en su código. El uso de palabras adicionales como OUTER asegúrese de que otras personas que lean el código tengan más facilidad para entenderlo. Habrá menos ambigüedad. Este estilo es mucho más legible y más amable para las personas en el futuro que tendrán que mantener ese código.
fuente