jueves, 31 de marzo de 2016

SQL JOINS

INNER JOIN
El INNER JOIN es otro tipo de composición de tablas, permite emparejar filas de distintas tablas de forma más eficiente que con el producto cartesiano cuando una de las columnas de emparejamiento está indexada.
Ejemplo
1. Implementar un Script que permita mostrar los pasajeros con su correspondiente país de residencia (Inner Join).

Tabla Pasajero-País


--Utilizando un producto cartesiano
select pas.nombre,pas.apaterno,pas.amaterno,pai.nombre as [País]
from pasajero pas, pais pai
go
--Utilizando la cláusula Inner Join
select pas.nombre,pas.apaterno,pas.amaterno,pai.nombre as Pais
from pasajero pas inner join pais pai
on pas.idpais=pai.idpais
go
--Utilizando un producto cartesiano y aplicando un filtro Where
select pas.nombre,pas.apaterno,pas.amaterno,pai.nombre as Pais
from pasajero pas, pais pai
where pas.idpais=pai.idpais
go



2. Implementar un Script que permita mostrar los pasajeros con las siguientes columnas idpasajero,         nombre, apaterno, amaterno, país, fecha de pago, monto de pago (Inner Join).

Tabla País-Pasajero-Pago


select pas.idpasajero,pas.nombre,pas.apaterno, pas.amaterno,pai.nombre as Pais,pag.fecha, pag.monto
from pasajero pas inner join pais pai
on pas.idpais=pai.idpais
inner join pago pag
on pag.idpasajero=pas.idpasajero
go




3.  Implementar un Script que permita mostrar las reservas de un determinado PASAJERO                        especificado por su nombre. Finalmente, debe ordenar la fecha de reserva de forma descendente.

Tabla Reserva




 declare @num_documento varchar(12)='47715777'
 select res.*
 from pago pag inner join pasajero pas
 on pag.idpasajero=pas.idpasajero
 inner join reserva res
 on pag.idreserva=res.idreserva
 where pas.num_documento=@num_documento
 go

                

3 comentarios: