12 marzo 2012

SQL: Diferencias entre los 5 tipos de Join



Diferencias entre los 5 tipos de Join:
  • INNER JOIN: es el caso de unión interna clásico, combina dos o más tablas descartando todas las filas resultados que no se correspondan en ambas.
  • LEFT OUTER JOIN (o LEFT JOIN): combina dos tablas con la diferencia que selecciona todas las filas de la primer tabla sin importar tengan o no coincidencia en la segunda. RIGHT OUTER JOIN (o RIGHT OUTER): es la opción inversa a la anterior. En la mayoría de las bases de datos actuales se puede omitir OUTER.
  • FULL OUTER JOIN: combina los resultados de dos o más tablas, tengan o no coincidencia entre sí.
  • CROSS JOIN: retorna el producto cartesiano de dos o más tablas, es decir, combina cada fila de una tabla con cada fila de otra tabla. CROSS JOIN no debería llevar la clausula ON.
  • NATURAL JOIN: Es un caso especial de INNER JOIN que compara por cuenta propia la equivalencia de columnas con el mismo nombre y tipo de dato entre dos o más tablas para hacer la combinación de ambas. Hay que tener especial cuidado con su uso, pues puede producir resultados ambiguos o generar problemas si se añaden, quitan, o renombran las columnas.


Aquí os dejo un enlace a una página web donde aparcen ejemplos visuales: A Visual Explanation of SQL Joins


Saludos

No hay comentarios:

Publicar un comentario en la entrada