UNIÓN EXTERIOR COMPLETA vs UNIÓN COMPLETA


81

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?


2
Sí, ambas consultas me dan los mismos resultados en SQL Server 2008 R2.
CptSupermrkt

Respuestas:



36

Microsoft® SQL Server ™ 2000 utiliza estas palabras clave SQL-92 para combinaciones externas especificadas en una cláusula FROM:

  • UNIÓN EXTERIOR IZQUIERDA o UNIÓN IZQUIERDA

  • UNIÓN EXTERIOR DERECHA o UNIÓN DERECHA

  • UNIÓN EXTERIOR COMPLETA o UNIÓN COMPLETA

De MSDN

Los full outer joino full joindevuelve todas las filas de ambas tablas, la adecuación de las filas siempre que sea un partido se pueden hacer y colocación NULLs en los lugares donde no existe una fila coincidente.


11

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.