08/08/2002, 09:24
|
| Colaborador | | Fecha de Ingreso: noviembre-2001 Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 23 años Puntos: 69 | |
Re: Buscando manual o tutorial sobre LEFT JOIN .. A ver... quizás con un ejemplo te lo pueda explicar mejor:
Supongamos 2 tablas :
Usuarios
--------
id_usuario
nick
con los datos :
1 -> Cluster
2 -> HerSan
3 -> Webstudio
y otra tabla llamada
Posts
-----
id_post
id_usuario
tema
con los valores:
1 -> 1 -> Ayuda de joins
2 -> 1 -> Autentificator
3 -> 2 -> Envio de emails con sockets
Entonces, ahora queremos hacer un JOIN de 2 tablas, para obtener el nombre de cada post y el nombre de cada usuario que lo posteó.
Hacemos esto : SELECT p.tema, u.nick FROM posts p LEFT JOIN usuarios u ON p.id_usuario = u.id_usuario
De esta manera, le pedimos al mySQL que tome la tabla POSTS y haga un LEFT JOIN con USUARIOS. el LEFT JOIN garantiza que tendremos TODOS los valores de la tabla "A la izquierda", tenga o no tenga un valor correspondiente al join. Esto nos devolverá:
Ayuda de joins -> Cluster
Autentificator -> Cluster
Envio de emails con sockets -> HerSan
Ahora, que hubiera pasado si en vez de un LEFT JOIN.. haciamos un RIGHT JOIN ? Entonces nos garantizabamos al menos 1 aparicion de cada uno de los registros de la derecha con sus joins a la Izquierda. ASi : SELECT p.tema, u.nick FROM posts p RIGHT JOIN usuarios u ON p.id_usuario=u.id_usuario
Ayuda de joins -> Cluster
Autentificator -> Cluster
Envio de mails con sockets -> HerSan
NULL -> Webstudio
El join en este caso, se hizo a la derecha, y habia registros en la tabla de la derecha que no se correspondian ( segun el criterio que usamos) con ninguno de la izquierda, pero igual aparecen.
El último que quedaría explicar es el INNER JOIN, que en realidad, es lo mismo que el JOIN a secas ( eso creo, pero si alguien me lo afirma mejor ). Con el INNER JOIN, te garantizas que solo aparezcan los registros que TIENEN correspondencia en el JOIN, o sea, que la condicion se cumple en ambos sentidos y que no quedarán como NULL -> Webstudio en el ejemplo anterior.
Espero haber aclarado algo. Sino, pues sigue preguntando.
<hr><font size=2 face=verdana>- Pablo Rigazzi (<img src=http://www.fantabuloso.com/iB_html/non-cgi/emoticons/bullwhip.gif align=absmiddle>)[/CODE]
<font size=1 color=#333333>Visita <a href=http://www.web-studio.com.ar>Web Studio</a>[/CODE] |