Home Bases de Datos MySQL producto cartesiano y join

PostHeaderIcon producto cartesiano y join

Usar puntuación: / 6
MaloBueno 

Según vimos en el álgebra relacional, el producto cartesiano da como resultado todas las combinaciones posibles de todas las filas de dos tablas.

También definimos el JOIN como las combinaciones de dos tablas que tienen algún campo común.

 

 

Por tanto, una forma sencilla de calcular el producto cartesiano es con un select de dos tablas:

SELECT * FROM ALUMNOS, ASIGNATURAS;

Para el JOIN podemos utilizar también la sentencia SELECT de la siguiente manera:

SELECT * FROM ALUMNOS, ASIGNATURAS

WHERE ALUMNOS.COD_ALUMNOS=ASIGNATURAS.ALUMNO

Otra opción podría haber sido:

SELECT * FROM alumnos [INNER | CROSS] JOIN asignaturas

ON (alumnos.cod_alumno=asignatura.alumno)

Observamos que la coma de la primera opción es equivalente al JOIN de la segunda y que la clásula WHERE se sustituye por ON. La condición dentro del ON es exactamente la misma que la del WHERE.

INNER JOIN se utiliza como equivalente de la coma (,) en las versiones antiguas (anteriores a la V3.24) y CROSS JOIN es el producto cartesiano también para versione antiguas (hasta la 4).

Una tercera opción sería

SELECT * FROM alumnos JOIN asignaturas USING(cod_alumno, alumno)

La cláusula USING es la que determina la condición

La última opción son LEFT JOIN y RIGHT JOIN. Estas opciones añaden combinaciones no existentes rellenándolas como nulos (NULL). Añadirá a la primera tabla o a la segunda según sea LEFT o RIGHT

 

Escribir un comentario


Código de seguridad
Refescar

PostHeaderIcon Más Comentado

PostHeaderIcon Últimos Comentarios

mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterHoy612
mod_vvisit_counterAyer713
mod_vvisit_counterEsta semana2640
mod_vvisit_counterLa semana pasada5382
mod_vvisit_counterEste mes17924
mod_vvisit_counterEl mes pasado29418
mod_vvisit_counterTodos los días1625560

We have: 58 guests online
Hoy es: Jun 21, 2018