LEFT Y RIGHT JOIN

erpollo
24 de Octubre del 2003
alguien podria explicarme la diferencia entre ambos
si puede ser con ejemplo mejor

Baltasar
24 de Octubre del 2003
Como supongo que ya habrás leido en la ayuda, la cláusula JOIN te "engancha" dos tablas mediante uno o más campos en común.
Imaginemos una tabla con tus amigos y otra con sus direcciones, ambas con un campo en común: ID para los amigos e ID_Amigo en las direcciones. Cada amigo tendrá una dirección, y cada dirección un amigo. Si quisieras ver al información, sería:

select * from amigos left join direcciones on direcciones.id_amigo=amigo.id

si en vez de usar left usas right, en este caso, el resultado sería el mismo.

Pero ahora imagina que en vez de amigos y direcciones tienes amigos y coches. Supongo que algún amigo no tendrá coche, y ahora imagínate también que hay un par de coches que no pertenecen a tus amigos, pero están en la base de datos:

select + from amigos left join coches on coches.id_amigo=amigo.id

esto te devolverá una lista con todos tus amigos y sus coches, y si alguno no tiene coche te aparecerá su nombre, y los campos de su coche vacios.

select + from amigos right join coches on coches.id_amigo=amigo.id

esto te devolverá una lista con los amigos que tienen coche, y un par de líneas en las que aparecerán los datos de esos coches "sin dueño", con los datos del amigo vacios.

Espero haberme explicado bien. y ahora te toca a tí buscar lo que hace el INNER JOIN.
Suerte