¿Cuáles son los usos de las diferentes operaciones de unión en sql? Me gustaría saber por qué necesitamos las diferentes combinaciones internas y externas.¿Cuáles son los usos de las diferentes operaciones de unión en sql
Respuesta
El único tipo de combinación que realmente necesita es LEFT OUTER JOIN
. Cualquier otro tipo de unión se puede reescribir en términos de una o más combinaciones externas izquierdas, y posiblemente algún tipo de filtrado. Entonces, ¿por qué necesitamos todos los demás? ¿Es solo para confundir a la gente? ¿No sería más simple si hubiera un solo tipo de unión?
También podría preguntar: ¿Por qué tener ambos a <= b
y b >= a
? ¿No hacen esto lo mismo? ¿No podemos deshacernos de uno de ellos? ¡Simplificaría las cosas!
A veces es más fácil cambiar <=
por >=
en lugar de intercambiar los argumentos por la ronda. Del mismo modo, una combinación de izquierda y una de derecha son lo mismo solo con los operandos intercambiados. Pero nuevamente es práctico tener ambas opciones en lugar de requerir que las personas escriban sus consultas en un orden específico.
Otra cosa que podría hacer es: En la lógica ¿Por qué tenemos AND
, OR
, NOT
, XOR
, NAND
, NOR
, etc? ¡Todos estos pueden ser reescritos en términos de NAND
s! ¿Por qué no solo tienes NAND
?Bueno, es awkward para escribir un OR
en términos de NAND
s, y no es tan obvio cuál es la intención - si escribe OR
, la gente sabe de inmediato lo que quiere decir. Si escribe un montón de NAND
s, no es obvio lo que está tratando de lograr.
De manera similar, si desea hacer a FULL OUTER JOIN b
, puede hacer una combinación de la izquierda y una de la derecha, eliminar los resultados duplicados y luego unir todo. Pero eso es un dolor, así que hay una forma abreviada de hacerlo.
¿Cuándo usa cada una? Aquí hay una regla simplificada:
- Si siempre quiere una fila de resultados para cada fila en la tabla IZQUIERDA, use una UNIÓN EXTERIOR IZQUIERDA.
- Si siempre quiere una fila de resultados para cada fila en la tabla DERECHA, use una DERECHA UNIÓN EXTERIOR.
- Si siempre quiere una fila de resultados para cada fila en cualquiera de las tablas, use un FULL OUTER JOIN.
- Si solo desea una fila de resultados cuando hay una fila en ambas tablas, use una UNIÓN INTERNA.
- Si desea todos los pares posibles de filas, una fila de cada tabla, use una UNIÓN CRUZADA.
Este enlace debe despejar dudas todo te unes relacionados:
http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html
utilicé este tutorial para comprender las operaciones de unión antes de publicar. Mi pregunta es ¿por qué necesitamos tantas operaciones de combinación diferentes? ¿Cuándo usar qué operación de unión? – varunthacker
inner join
- se une a las filas de ambos conjuntos de partido sobre la base de los criterios especificados.
outer join
- selecciona todo un conjunto, junto con los elementos coincidentes o vacíos (si no coinciden) del otro conjunto. Las uniones externas pueden ser left
o right
, para especificar qué conjunto se devuelve en su totalidad.
Para aclarar las demás respuestas, OBTENDRÁ DIFERENTES RESULTADOS de acuerdo con la combinación que elija, cuando las columnas a las que se une contengan valores nulos, por ejemplo.
Por lo tanto, para cada escenario de la vida real hay una combinación que le conviene (o desea las líneas sin los datos o no en el ejemplo de valores nulos).
Mi respuesta supone 2 mesas se unieron en una sola tecla:
INNER JOIN
- obtener los resultados que se encuentran en tanto unir tablas (según la regla de combinación)FULL OUTER JOIN
- obtener todos los resultados tanto de mesa (producto cartesiano)LEFT OUTER JOIN
- obtener todos los resultados de la tabla de la izquierda y los resultados coincidentes desde la derecha
Puede agregar WHERE
cláusulas para restringir aún más los resultados.
Utilice esto para obtener solo lo que desea obtener.
- 1. ¿Cuáles son los diferentes usos de los [corchetes] en Ruby?
- 2. ¿Cuáles son los usos de Cross Join?
- 3. ¿Cuáles son los usos de las subrutinas lvalue en Perl?
- 4. ¿Cuáles son los usos comunes de UDP?
- 5. ¿Cuáles son los mejores usos de las tiendas de documentos?
- 6. ¿Cuáles son los usos de svn copy?
- 7. ¿Cuáles son los usos de buffer circular?
- 8. ¿Cuáles son algunos de los usos inteligentes de LINQ?
- 9. ¿Cuáles son los usos de funciones virtuales puras en C++?
- 10. ¿Cuáles son los buenos usos de los módulos empaquetados OCaml?
- 11. ¿Cuáles son los usos de los tipos polimórficos?
- 12. ¿Cuáles son todos los usos de '@' en C#?
- 13. ¿Cuáles son los usos del predicado de falla en Prolog?
- 14. ¿Cuáles son los beneficios de las diferentes endiannesses?
- 15. ¿Cuáles son algunos usos de los metadatos de Clojure?
- 16. ¿Cuáles son algunos usos de los cierres para OOP?
- 17. ¿Cuáles son los usos del código de auto modificación?
- 18. ¿Cuáles son los usos prácticos de Factory Method Pattern?
- 19. ¿Cuáles son los usos de la construcción C++ "placement new"?
- 20. Iron Python: cuáles son los buenos usos de Iron Python
- 21. ¿Cuáles son los usos prácticos de un constructor protegido?
- 22. ¿Cuáles son algunos usos interesantes para los agentes de Java?
- 23. ¿Cuáles son los usos prácticos del módulo (%) en la programación?
- 24. ¿Cuáles son los usos comunes de las variables de condición en C++?
- 25. ¿Cuáles son las diferentes maneras de reemplazar un cursor?
- 26. ¿Cuáles son los usos inusuales y creativos del lienzo html5
- 27. SQL de las operaciones
- 28. ¿Cuáles son los diferentes números de versión de AccuRev?
- 29. ¿Cuáles son los diferentes tipos de objetivos en EDE?
- 30. Cuáles son los diferentes tipos de certificados, formatos en Criptografía
¿Por qué en el mundo hay más personas que votan esta pregunta? – Nix
Um. Tal vez es una buena pregunta desde su perspectiva? – EvilTeach