Presentación: Outer JOIN, Self JOIN, y Union

Autor: Daniela Muñoz Muñoz
Competencia: Comunicación Oral.
Palabras Clave: Base de datos, My SQL.

Descripción de la Actividad: A continuación les daré a conocer mi grata experiencia como estudiante de primer año de ingeniería civil en informática, en una de mis presentaciones ( disertaciones) sobre el capitulo 10 de My SQL.
El propósito de la presentación consiste en entender los conceptos Outer Join, Self Join, y Unions  y como se aplica en My SQL.  

Solución:
La solución es tomar cada uno de estos conceptos y analizarlos, tomando en cuenta su respectivas sentencias.

                        OUTER JOIN
Anteriormente, hemos visto una unión izquierda, o interna, donde seleccionamos filas comunes a las tablas que participan en la unión.
¿Qué sucede en los casos donde estamos interesados en la selección de elementos en una tabla sin importar si se encuentran presentes en la segunda tabla? 
Ahora necesitaremos utilizar el comando SQL OUTER JOIN.

Ejemplo OUTER  JOIN
Queremos saber la suma de las ventas de todas las Ciudades. Si realizamos una unión regular, no podríamos obtener lo que deseamos debido a que habríamos omitido “Iquique" ya que no aparece en la tabla Ciudades

Ciudades
Ciudad
Ventas
Fecha
Puerto Montt
1500 €
05-Jan-1999
Temuco
250 €
07-Jan-1999
Puerto Montt
300 €
08-Jan-1999
Arica
700 €
08-Jan-1999




Geografia
Zona
Ciudad
Norte
Arica
Norte
Iquique
Sur
Puerto Montt
Sur
Temuco


Por lo tanto, necesitamos realizar una unión externa respecto de las dos tablas anteriores:
sintaxis

SELECT A1.Ciudad, SUM(A2.Ventas)VENTAS
FROM Geografia A1, CiudadesA2
WHERE A1.Ciudad = A2.Ciudad (+)
GROUP BY A1.Ciudad

 SELF JOIN

SELF JOIN es una técnica empleada para conseguir el producto cartesiano de una tabla consigo misma. Su utilización no es muy frecuente, pero pongamos algún ejemplo de su utilización
Supongamos la siguiente tabla (El campo autor es numérico, aunque para ilustrar el ejemplo utilice el nombre):

Código (Código del libro)
Autor (Nombre del Autor)
B0012
1. Francisco López
B0012
2. Javier Alonso
B0012
3. Marta Rebolledo
C0014
1. Francisco López
C0014
2. Javier Alonso
D0120
2. Javier Alonso
D0120
3. Marta Rebolledo


Queremos obtener, para cada libro, parejas de autores:


SELECT A.Codigo, A.Autor, B.Autor FROM 
SELF JOIN Autores A, Autores B
ON
 A.Codigo = B.Codigo 



UNION

  El propósito del comando SQL UNION es combinar los resultados de dos consultas juntas. En este sentido, UNION es parecido a Join , ya que los dos se utilizan para información relacionada en múltiples tablas. Una restricción de UNION es que todas las columnas correspondientes necesitan ser del mismo tipo de datos. También, cuando utilizamos UNION, sólo se seleccionan valores distintos (similar a SELECT DISTINCT).

Ejemplo UNION
      
La sintaxis es la siguiente:
[Instrucción SQL 1]
UNION
[Instrucción SQL 2]

Local
Ventas
Fecha
Tabla Ventas Sucursal
1500 €
05-Jan-1999
Santiago
250 €
07-Jan-1999
Temuco
300 €
08-Jan-1999
Putre
700 €
08-Jan-1999


Fecha
Ventas
07-Jan-1999
250 €
10-Jan-1999
535 €
11-Jan-1999
320 €
12-Jan-1999
750 €

   Deseamos saber de todas las fechas donde hay una operación de venta. Para hacerlo, utilizamos la siguiente instrucción SQL:

SELECT Fechas FROM Ventas Locales
UNION
SELECT Fechas FROM  Ventas Internet

Resultado:
Fechas
05-Jan-1999
07-Jan-1999
08-Jan-1999
10-Jan-1999
11-Jan-1999
12-Jan-1999



Reflexión
Para tener claro alguna sentencia My SQL, debemos averiguar y tener claro de que se trata, ademas de sus sentencias que es lo principal para poder usarlas.
Las sentencias explicadas, nos ayudan mucho ya que al no tenerlas algunas de las acciones que estas realizan no se podrían realizar o al poder realizar-las el proceso serias doblemente mas largo.