Inicio
Software
Programación
HTML Programación - PHP (ini) Programación - PHP POO Programación - PHP / HTML SQL Java
Hardware
Desarrollos
Quién soy Mapa del sitio

MySQL - Select entendiendo el join

Imprimir
Categoría: SQL
Escrito por Ch4rl1X Visitas: 1106

Para entener el Join primero analicemos las tablase, tenemos:

Una tabla principal, con los siguientes datos:

Luego una tabla derecha, con:

 

Y una izquierda con:

Selec para la tabla principal:

Relacionando todoas los valores de las tablas para mostrarlo en pantalla con INNER JOIN:

 

Realizando una relación de rango de selección con los valores de la dErecha contra principal, luego diferenciamos los valores de left join y right join:

Analizando exactamente lo que hace la consulta, para el inner join, MySQL resuelve devolver todos los "rangoSeleccion" que coincida con la tabla derecha.

En la tabla derecha tenemos 2 valores 1 y 2, en la tabla principal también tenemos 2 valores, llendo a la matemática diríamos, de la primer columna obtiene los 3 primeros valores para el primer número y los devuelve, de la segunda también y lo mismo para la tercera, es decir: (3 x 3) + (3 x 3) o sea 18 registros para el inner:

Cuando se agrega el LEFT JOIN estamos diciendo que principal se compare con el rango de la tabla de la izquierda, al controlar losr resultados vemos:

Y por qué 20, analicemos con este excel:

 

Es decir en cantidad de iteraciones que recorren los registros vemos, que sin importar si es left o right en esta consulta en particular, de acuerdo a los datos que contiene no varía el total de filas, que pasaría si variamos la instrucción de LEFT a RIGHT:

 

Vemos que de agrupar los datos esta vez lo realizaría a la derecha.

Luego vamos a cambiar de motor a MSSQL, no porque lo prefiera, sino por que su sintaxis es parecida y bueno, es lo que más estoy utilizando últimamente.

Espero que sirva, saludos!

Ch4rl1X