Consultas relacionadas

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.

SELECT * FROM empleado
idnombreedadid_departamento
1Juan301
2Paco201
SELECT * FROM departamento
idnombre
1Programación
2Marketing

Consultas multitablas

Producto cartesiano o composición cruzada

Cada fila de la tabla empleado se combinará con cada fila de la tabla departamento. Esto puede dar lugar a resultados con muchas filas si ambas tablas tienen muchos registros. Podemos hacer un producto cartesiano de dos formas:

SELECT * FROM empleado, departamento
SELECT * FROM empleado CROSS JOIN departamento
idnombreedadid_departamentoidnombre
1Juan3011Programación
2Paco2011Programación
1Juan3012Marketing
2Paco2012Marketing

Composición interna

Esta consulta nos devolvería la intersección entre las dos tablas. Sólo obtendremos los resultados que esten en ambos conjuntos.

Por lo tanto, si existen filas en la tabla empleado que no tienen un departamento asociado, no se verán en los resultados, al igual que pueden existir filas en la tabla departamento que no aparecen en el resultado porque no tienen ningún empleado asociado.

En nuestro ejemplo, el departamento de marketing no tiene ningún empleado.

La segunda consulta tiene una sintaxis más moderna que la primera.

SELECT * FROM empleado, departamento WHERE empleado.id_departamento = departamento.id
SELECT * FROM empleado INNER JOIN departamento ON empleado.id_departamento = departamento.id
idnombreedadid_departamentoidnombre
1Juan3011Programación
2Paco2011Programación

Composiciones externas

En la siguiente consulta, en los valores de la tabla de la derecha en la que no haya correspondencia, se mostrará NULL.

SELECT * FROM empleado LEFT JOIN departamento ON empleado.id_departamento = departamento.id
idnombreedadid_departamentoidnombre
1Juan3011Programación
2Paco2011Programación

En la siguiente consulta, en los valores de la tabla de la derecha en la que no haya correspondencia, se mostrará NULL.

SELECT * FROM empleado RIGHT JOIN departamento ON empleado.id_departamento = departamento.id
idnombreedadid_departamentoidnombre
1Juan3011Programación
2Paco2011Programación
NULLNULLNULLNULLNULLNULL

Ejercicios

Realiza las siguientes consultas en la base de datos que tiene las siguientes tablas:

  • books
    • id
    • title
    • price
    • author_id
  • authors
    • id
    • name
    • born_date

De la base de datos de bicicletas:

  1. Muestra el nombre del usuario con DNI 52111111A
  2. Muestra las ids de las bicicletas que están en el parking 1
  3. Muestra los dni de los usuarios cuyo nombre comienza por M
  4. Muestra la id y la dirección de los aparcamientos de bicicletas ordenados por capacidad máxima de bicicletas. Mostrar los resultados en orden ascendente y descendente.
  5. Muestra las direcciones de los aparcamientos de bicicletas que tienen capacidad entre 10 y 20 bicicletas
Descargar consultas

Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.