¿como hacer un Join? Leido 9.935 veces

 
 
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.

 

 





 
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.

 

 


 
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

 

 


 
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..

 

 


 
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.

 

 





 
OK, entendido Gracias Jesus :)