65 - Varias tablas (right join)


Problema:
Un club dicta clases de distintos deportes. En una tabla llamada "socios" guarda los datos de sus 
socios y en una tabla denominada "inscriptos" almacena la información necesaria para las 
inscripciones de los socios a los distintos deportes.

1- Elimine las tablas si existen.

2- Cree las tablas:
 create table socios(
  documento char(8) not null,
  nombre varchar(30),
  domicilio varchar(30),
  primary key(documento)
 );

 create table inscriptos(
  documento char(8) not null, 
  deporte varchar(15) not null,
  año year,
  matricula char(1), /*si esta paga ='s' sino 'n'*/
  primary key(documento,deporte,año)
 );

3- Ingrese algunos registros para ambas tablas:
 insert into socios values('22333444','Juan Perez','Colon 234');
 insert into socios values('23333444','Maria Lopez','Sarmiento 465');
 insert into socios values('24333444','Antonio Juarez','Caseros 980');
 insert into socios values('25333444','Marcelo Pereyra','Sucre 349');

 insert into inscriptos values ('22333444','natacion','2015','s');
 insert into inscriptos values ('22333444','natacion','2016','n');
 insert into inscriptos values ('23333444','natacion','2015','s');
 insert into inscriptos values ('23333444','tenis','2016','s');
 insert into inscriptos values ('23333444','natacion','2016','s');
 insert into inscriptos values ('24333444','tenis','2016','n');
 insert into inscriptos values ('24333444','basquet','2016','n');

4- Realice un "left join" de la tabla "socios" a "inscriptos" buscando coincidencia de "documento":
 select s.documento,nombre,i.deporte,i.año,i.matricula
  from socios as s
  left join inscriptos as i
  on s.documento=i.documento;
Note que el socio que no está inscripto en ningún deporte tiene la fila seteada a "null".

5- Realice un "right join" para obtener la misma salida anterior:
 select s.documento,nombre,i.deporte,i.año,i.matricula
  from inscriptos as i
  right join socios as s
  on s.documento=i.documento;

6- Ingrese una inscripción de alguien que no sea socio (documento que no se encuentre en la 
tabla "socios"):
 insert into inscriptos values ('26333444','basquet','2016','n');

7- Realice un "right join" desde la tabla "socios" a "inscriptos" buscando coincidencia de documento:
 select nombre,i.documento,deporte,i.año,i.matricula
  from socios as s
  right join inscriptos as i
  on s.documento=i.documento;
Note que la persona con documento "26333444" no se encuentra en "socios", la columna "nombre" 
(correspondiente a la tabla "socios") contiene "null".



 


Retornar