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

Informacion y como hacer un JOIN

Estas en el tema de Informacion y como hacer un JOIN en el foro de Mysql en Foros del Web. hola, bueno tengo 2 tablas usuarios, comentarios. La cuestión es que en los comentarios quiero mostrar el avatar de el que lo a comentado, me ...
  #1 (permalink)  
Antiguo 06/10/2009, 10:48
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Informacion y como hacer un JOIN

hola, bueno tengo 2 tablas
usuarios, comentarios.
La cuestión es que en los comentarios quiero mostrar el avatar de el que lo a comentado, me an dicho que tengo que hacer un Join, la verdad no se como se hace, uso phpmyadmin.
El campo "avatar" esta en la tabla usuarios.
Según tengo entendido si creo un Campo Avatar en la tabla comentarios y creo un Join si se modifica el Avatar de la tabla "Usuarios" también se modifica en la de "Comentarios".

bueno muchas gracias por la atencion, espero que alguien me pueda ayudar :)
  #2 (permalink)  
Antiguo 06/10/2009, 10:54
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Informacion y como hacer un JOIN

Aquí puedes encontrar información al respecto:
http://dev.mysql.com/doc/refman/5.0/es/join.html

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 06/10/2009, 11:02
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: Informacion y como hacer un JOIN

La verdad, que no me e enterado de nada ;(, pero gracias igualmente..
que alguien lo explique bien..
es que en ese tipo de guias no me suelo enterar...
  #4 (permalink)  
Antiguo 06/10/2009, 11:06
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Informacion y como hacer un JOIN

Supongamos que en la tabla comentarios tienes un campo usuario_id, y en la tabla usuarios el campo id. Entonces la consulta podría ser algo como esto:
Código MySQL:
Ver original
  1.     c.*, u.avatar
  2.     comentarios c
  3.     usuarios u
  4.     c.usuario_id = u.id;
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 06/10/2009, 11:20
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: Informacion y como hacer un JOIN

Siento ser tan preguntón, pero ¿eso que aria?
  #6 (permalink)  
Antiguo 06/10/2009, 11:42
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Informacion y como hacer un JOIN

Puedes hacer una prueba para ver el resultado.

Básicamente, mostraría todos los datos de la tabla comentarios, y en cada fila, el campo avatar asociado al id de usuario.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 06/10/2009, 11:53
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: Informacion y como hacer un JOIN

Lo que pasa que nose su comportamiento aver..

//Seleccion el campo Avatar...

SELECT
c.*, u.avatar
//...De la tabla
FROM
comentarios c
JOIN
usuarios u
ON
c.usuario_id = u.id;

Es que no entiendo bien..
  #8 (permalink)  
Antiguo 06/10/2009, 12:05
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Informacion y como hacer un JOIN

Unos datos de ejemplo para que veas cómo funciona:
Código MySQL:
Ver original
  1. mysql> SELECT * FROM comentarios;
  2. +----+-------------+------------+
  3. | id | comentario  | usuario_id |
  4. +----+-------------+------------+
  5. |  1 | Comentario  |          1 |
  6. |  2 | Comentario2 |          1 |
  7. |  3 | Comentario3 |          2 |
  8. +----+-------------+------------+
  9. 3 rows in set (0.00 sec)
  10.  
  11. mysql> SELECT * FROM usuarios;
  12. +----+-----------+---------+
  13. | id | nombre    | avatar  |
  14. +----+-----------+---------+
  15. |  1 | David     | av1.gif |
  16. |  2 | angel1993 | av2.gif |
  17. +----+-----------+---------+
  18. 2 rows in set (0.00 sec)
  19.  
  20. mysql> SELECT c.*, u.nombre, u.avatar
  21.     -> FROM comentarios c
  22.     -> JOIN usuarios u
  23.     -> ON c.usuario_id = u.id;
  24. +----+-------------+------------+-----------+---------+
  25. | id | comentario  | usuario_id | nombre    | avatar  |
  26. +----+-------------+------------+-----------+---------+
  27. |  1 | Comentario  |          1 | David     | av1.gif |
  28. |  2 | Comentario2 |          1 | David     | av1.gif |
  29. |  3 | Comentario3 |          2 | angel1993 | av2.gif |
  30. +----+-------------+------------+-----------+---------+
  31. 3 rows in set (0.00 sec)
  32.  
  33. mysql>
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 06/10/2009, 12:22
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: Informacion y como hacer un JOIN

a vale vale. Muchisimas gracias.
e puesto al consulta esa que me avías dado anterior mente..
¿Supuesta mente pasa algo visiblemente?
por que cuando miro los campos de la tabla comentarios solo se ven los que ya avían...
  #10 (permalink)  
Antiguo 06/10/2009, 17:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Informacion y como hacer un JOIN

Cita:
¿Supuesta mente pasa algo visiblemente?
por que cuando miro los campos de la tabla comentarios solo se ven los que ya avían...
¿A qué te refieres con esto?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 25/10/2009, 13:01
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: Informacion y como hacer un JOIN

Aver, como no lo entendi para no molestar no pregunte mas.
Pero ahora me hace falta.
Tengo una Tabla "Noticias" y otra "Usuarios"
Noticia:
| id | Titulo| texto |
----------------------------------
1 | Muere.. | Hoy.. |

Y la de Usuarios:
| id | Name | Avatar | Pass |
--------------------------------------
| 1 | Angel| http:// |******| *

Pues eso... quiero hace un join de todos los campos de la tabla usuarios a la tabla "Noticias"
Osea para que cuando cree una consulta "mysql_query("select * from noticias.."
Pueda listarlo desde la misma consulta
  #12 (permalink)  
Antiguo 25/10/2009, 15:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Informacion y como hacer un JOIN

Cita:
quiero hace un join de todos los campos de la tabla usuarios a la tabla "Noticias"
Pero en la tabla NOTICIAS que muestras no hay ningún campo que las relacione; es decir, no hay un user_id como FK que permita discriminar cuántos usuarios y qué usuarios publicaron qué noticias.

La idea es cumplir una sentencia que llevase algo como
Código sql:
Ver original
  1. SELECT *
  2. FROM noticias N INNER JOIN usuarios U ON  N.user_id = U.user_id;
¿Podrías postear la estructura completa de ambas tablas? De esa forma si podríamos escibir la sentencia.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 26/10/2009, 03:17
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: Informacion y como hacer un JOIN

aver ¿esto esta bien?
Las tablas son
Tabla:Noticia
Campos: ID,id_usuario,Titulo,texto,seccion
Tabla: Usuarios
Campos: id,nopmbre,avatar,contraseña-
  #14 (permalink)  
Antiguo 26/10/2009, 04:11
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Informacion y como hacer un JOIN

Si.

Si esa es la estructura ya te dieron la respuesta

mysql_query("

Código sql:
Ver original
  1. SELECT *
  2. FROM noticias N
  3.      INNER JOIN
  4.          usuarios U
  5.             ON  N.id_usuario = U.id;

");


Antes de preguntar mira si te funciona y intenta entender....

Cuando hacemos un join solo estamos juntando las tablas "virtualmente" no las juntamos fisicamente, luego lo que tienes que poner en el php es la sentencia que crea la consulta con el join ....

Quim
  #15 (permalink)  
Antiguo 26/10/2009, 04:20
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: Informacion y como hacer un JOIN

aaaaaaaaaa
yo no ponia eso en php con razon no funcionaba 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.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:48.