¿como hacer un Join? Leido 9.807 veces

 
  Broco
Pregunta
Resuelta.
Hice otro mensaje y creía que lo entendí pero no, pude hacerlo una vez por que me copie de otro pero quiero saber como hacerlo y entenderlo toda la estructura.

 

 





  Jesús
Respuesta correcta
select tabla1.campo1 , tabla2.campo2 from tabla1 left join tabla2 on tabla2.campollave = tabla1.campollave ;

select noticia.titulo, usuarios.nombre from notica left join usuarios on usuarios.usuarioid = noticia.usuarioid ;

Traducción mundana:
quiero el titulo de la noticia , el nombre del usuario de la tabla noticias y de la tabala usuarios cuando el id del usuario coincida con el id del usuario que ha creado la noticia.
La gente habla mucho y dice poco.

Por cierto diferencia entre un left join y un right join:

Descripción para que se entienda fácilmente:

LEFT: si no encuentra una coincidencia de la segunda tabla devolevrá null en los campos de la segunda tabla.

RIGHT: si no encuentra coincidencia de la segunda tabla, ese resultado no aparece.

Por ejemplo, si borras un usuario, haces una lista de noticias, con right no aparecerán en la lista las que no tenga ya usuario relacionado, con left, aparecerán y los valores de usuario.avatar , usuario.nombre será null.

 

 


  Jesús
No tiene misterio es para añdir campos de otra tabla al resultado.

select tabla1.campo1 , tabla2.campo2 from tabla1 left join tabla2 on tabla2.campollave = tabla1.campollave ;

así de simple

 

 


  Broco
Pues sigo sin entenderlo.
Aver tengo:
Tabla:Noticia
Campos: Titulo,Texto,Fecha
Tabla:Usuarios
Campos: Nombre,Avatar

¿Como se pone eso?
Eso quiero desde una consulta desde Noticias poder poner el nombre y tal..

 

 


  Jesús
Respuesta correcta
select tabla1.campo1 , tabla2.campo2 from tabla1 left join tabla2 on tabla2.campollave = tabla1.campollave ;

select noticia.titulo, usuarios.nombre from notica left join usuarios on usuarios.usuarioid = noticia.usuarioid ;

Traducción mundana:
quiero el titulo de la noticia , el nombre del usuario de la tabla noticias y de la tabala usuarios cuando el id del usuario coincida con el id del usuario que ha creado la noticia.
La gente habla mucho y dice poco.

Por cierto diferencia entre un left join y un right join:

Descripción para que se entienda fácilmente:

LEFT: si no encuentra una coincidencia de la segunda tabla devolevrá null en los campos de la segunda tabla.

RIGHT: si no encuentra coincidencia de la segunda tabla, ese resultado no aparece.

Por ejemplo, si borras un usuario, haces una lista de noticias, con right no aparecerán en la lista las que no tenga ya usuario relacionado, con left, aparecerán y los valores de usuario.avatar , usuario.nombre será null.

 

 





  Broco
OK, entendido Gracias Jesus :)
 

 





    ¿Cuantas columnas?     | 2 columnas | 3 columnas | 4 columnas | 5 columnas | 6 columnas |  
    Escribe la dirección web de la imagen:
  Publica tu respuesta  |  Haz Click en el siguiente cuadro para escribir