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.
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).
select pas.idpasajero,pas.nombre,pas.apaterno, pas.amaterno,pai.nombre as Pais,pag.fecha, pag.monto
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
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
muy buen aporte
ResponderEliminarExcelente
ResponderEliminarExcelente
ResponderEliminar