Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Buscando manual o tutorial sobre LEFT JOIN ..

Estas en el tema de Buscando manual o tutorial sobre LEFT JOIN .. en el foro de Bases de Datos General en Foros del Web. Pues eso .. que no me queda claro los ejemplos ni la documentacin de "LEFT JOIN" de Mysql (www.mysql.com) .. He estado ya mirando por ...
  #1 (permalink)  
Antiguo 07/08/2002, 14:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Buscando manual o tutorial sobre LEFT JOIN ..

Pues eso .. que no me queda claro los ejemplos ni la documentacin de "LEFT JOIN" de Mysql (www.mysql.com) ..

He estado ya mirando por google.com y no encuentro nada mas q definiciones y sin apenas ejemplos .. caso de devshed.com que hay un articulo sobre el tema pero no abarca todas las posibilidades de LEFT JOIN y JOIN en general ..

Alguno conce un buen tutorial/manual al respecto?.

Un saludo,
  #2 (permalink)  
Antiguo 08/08/2002, 02:10
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 22 años, 7 meses
Puntos: 6
Re: Buscando manual o tutorial sobre LEFT JOIN ..

jejeje. estaba en el sitio de w3schools.com y tiene una seccion con un tutorial SQL, y viene el tema de los joins, no hacen un tratado profundo pero si despejara tu duda. Bueno al menos eso espero ya que no lo lei detenidamente.
<a href='ir.asp?http://www.w3schools.com/sql/sql_join.asp' target='_blank'>http://www.w3schools.com/sql/sql_join.as...</a>

Saludos!.
Mty. NL.
  #3 (permalink)  
Antiguo 08/08/2002, 09:24
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
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 -&gt; Cluster
2 -&gt; HerSan
3 -&gt; Webstudio

y otra tabla llamada

Posts
-----
id_post
id_usuario
tema
con los valores:
1 -&gt; 1 -&gt; Ayuda de joins
2 -&gt; 1 -&gt; Autentificator
3 -&gt; 2 -&gt; 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 &quot;A la izquierda&quot;, tenga o no tenga un valor correspondiente al join. Esto nos devolverá:
Ayuda de joins -&gt; Cluster
Autentificator -&gt; Cluster
Envio de emails con sockets -&gt; 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 -&gt; Cluster
Autentificator -&gt; Cluster
Envio de mails con sockets -&gt; HerSan
NULL -&gt; 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 -&gt; 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]
  #4 (permalink)  
Antiguo 08/08/2002, 10:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Re: Buscando manual o tutorial sobre LEFT JOIN ..

Ahora esta mucho mas claro.

Gracias Hermino y Webstudio.

El problema que tenia era que no sabia identifica (o no me quedó claro el concepto) de IS NULL .. par hacer algo como en teoria funciona para una consulta simple con una sola tabla tipo:

SELECT campo FROM tabla WHERE campo != 'condicion'

Pero .. al usar varias tablas hay q hacer sub-consultas (cosa q Mysql hasta la version 4.1 q salga no las soporta directamente y debemos usar el tema de JOIN .. ON .. etc).

En la documentacion de Mysql está este tema (que la verdad .. q si está el link hacia este tema en el apartado JOIN o en el SELECT del manual .. no lo vi ..)

<a href='ir.asp?http://www.mysql.com/doc/en/ANSI_diff_Sub-selects.html' target='_blank'>http://www.mysql.com/doc/en/ANSI_diff_Su...</a>

Aquí se detalla un ejemplo de sub-consulta en SQL standar y como debe ser &quot;traducida&quot; al SQL de Mysql (Con JOIN etc ..)

Este link, junto con la exelente explicacion de Webstudio (jeje q <IMG SRC="images/futbol.gif" WIDTH="15" HEIGHT="15" HSPACE="3"> q soy) .. se comprende mejor el tema.

Un saludo, y GRACIAS!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 14:17.