Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/08/2006, 22:59
dracof
 
Fecha de Ingreso: agosto-2006
Mensajes: 1
Antigüedad: 18 años, 4 meses
Puntos: 0
Diferencias join,inner join,left join,right join.

Hola como estan, no entiendo lo siguiente:

Segun encontre en este foro, los siguientes 2 selects son lo mismo:

select * from persona, domicilio where persona.idpersona = domicilio.idpersona
select * from persona inner join domicilio on persona.idpersona = domicilio.idpersona

pero que significa que se le quite el inner como sigue:

select * from persona join domicilio on persona.idpersona = domicilio.idpersona

ahora, que diferencia hay entre left join y left outer join , right join y right outer join, es decir, que se le quite el outer como sigue:

select * from persona left join domicilio on persona.idpersona = domicilio.idpersona
select * from persona left outer join domicilio on persona.idpersona = domicilio.idpersona

select * from persona right join domicilio on persona.idpersona = domicilio.idpersona
select * from persona right outer join domicilio on persona.idpersona = domicilio.idpersona

ahora, vi que se puede utilizar el simbolo (+) para realizar un left outer join o un right outer join como sigue:

select * from persona join domicilio on persona.idpersona(+) = domicilio.idpersona
select * from persona join domicilio on persona.idpersona = domicilio.idpersona (+)

pero en alguna ocacion me dijeron que realizar los joins con (+) ya no se usaba en versiones actuales de oracle, se esta dejando de usar???

Muchas gracias.