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

unir 2 tablas

Estas en el tema de unir 2 tablas en el foro de Mysql en Foros del Web. Hola a todos; Tengo un problema que no se como resolver. Muestro unas consultas en una página y ahora quiero mostrar otros resultados conjuntamente con ...
  #1 (permalink)  
Antiguo 20/02/2011, 09:13
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
unir 2 tablas

Hola a todos;
Tengo un problema que no se como resolver.
Muestro unas consultas en una página y ahora quiero mostrar otros resultados conjuntamente con una segunda tabla.
En la primera tabla muestro todos los resultados del usuario logueado (id_usuarios ) he creado otra tabla en la cual quiero mostrar las consultas de los usuarios que este primero elija. Para ello he creado la tabla seguimiento en la que cojo los ID's.

Lo que quiero hacer es que me muestre tanto los datos de la primera tabla como la de la segunda pero que me lo ordene por fecha, las 2 tablas guardan fecha del tipo TIMESTAMP.

Alguien me puede orientar?

Un saludo
  #2 (permalink)  
Antiguo 20/02/2011, 09:38
Avatar de goroscer  
Fecha de Ingreso: mayo-2008
Mensajes: 75
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: unir 2 tablas

Hola, lo que necesitas es usar un join en la consulta sql, por el campo en comun entre las dos tablas. Saludos
__________________
"La verdadera locura quizá no sea otra cosa que la sabiduría misma que, cansada de descubrir las vergüenzas del mundo, ha tomado la inteligente resolución de volverse loca"
  #3 (permalink)  
Antiguo 20/02/2011, 09:44
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: unir 2 tablas

tenes que unirlas.

select *
from tabla1, tabla2
where tabla1.id_tabla2 = tabla2.id
order by tabla1.fecha
  #4 (permalink)  
Antiguo 20/02/2011, 12:33
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: unir 2 tablas

Parece que no me he explicado bien...
este es el select que tengo
Código PHP:
SELECT *,DATE_FORMAT(fecha_comentarios'%d-%m-%Y'fechita,  DATE_FORMAT(fecha_comentarios'%H:%i:%s'hora FROM comentariosusuariosseguidores WHERE idusuario_comentarios=id_usuarios AND idusuario_comentarios='$jefe' ORDER BY id_comentarios DESC
aquí muestro solo mis comentarios.
He creado otra tabla para que me muestre tambien los comentarios de los usuarios que yo quiera ver, asi que he creado otra tabla en la que inserto mi ID mas el ID del que quiero ver los comentarios... Pues no se como hacerlo.
  #5 (permalink)  
Antiguo 20/02/2011, 13:08
Avatar de goroscer  
Fecha de Ingreso: mayo-2008
Mensajes: 75
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: unir 2 tablas

hola, seria mas claro si muestras las tablas que intervienen en el problema. Saludos!
__________________
"La verdadera locura quizá no sea otra cosa que la sabiduría misma que, cansada de descubrir las vergüenzas del mundo, ha tomado la inteligente resolución de volverse loca"
  #6 (permalink)  
Antiguo 20/02/2011, 13:21
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: unir 2 tablas

en la tabla usuarios estan estos campos.
id_usuarios, nombre_usuario, pass, mail, fecha, ip_usuario, codigo, imagen_pequeu, imagen_grandeu, nombre_real.
En la tabla comentarios.
id_comentarios, texto, idusuario_comentarios, fecha_comentarios, imagen_peque, imagen_grande.
y en la tabla seguidores.
id_seguidores, idseguidor, idseguido, fecha_seguidores.

La tabla que no consigo unir es la de seguidores.
Los campos comunes son...

Usuarios=id_usuarios
Comentarios= idusuario_comentarios
Seguidores= idseguidor
  #7 (permalink)  
Antiguo 20/02/2011, 13:34
Avatar de goroscer  
Fecha de Ingreso: mayo-2008
Mensajes: 75
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: unir 2 tablas

Hola, Prueba con esta consulta:

SELECT u.nombre_usuario, seg.campo1, co.campo2 FROM seguidores seg INNER JOIN usuarios u ON (seg.idseguidor=u.id_usuarios) INNER JOIN comentarios co ON (co.idusuario_comentarios=seg.idseguidor) WHERE seg.idseguidor='3'

Esta seria la idea. Unir las tablas por intermedio de sus campos en comun. Lo que si no has dicho el motor que usas.

Saludos!
__________________
"La verdadera locura quizá no sea otra cosa que la sabiduría misma que, cansada de descubrir las vergüenzas del mundo, ha tomado la inteligente resolución de volverse loca"
  #8 (permalink)  
Antiguo 20/02/2011, 13:39
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: unir 2 tablas

Cita:
Iniciado por goroscer Ver Mensaje
Hola, Prueba con esta consulta:

SELECT u.nombre_usuario, seg.campo1, co.campo2 FROM seguidores seg INNER JOIN usuarios u ON (seg.idseguidor=u.id_usuarios) INNER JOIN comentarios co ON (co.idusuario_comentarios=seg.idseguidor) WHERE seg.idseguidor='3'

Esta seria la idea. Unir las tablas por intermedio de sus campos en comun. Lo que si no has dicho el motor que usas.

Saludos!
seg.campo1, co.campo2, a que campos te refieres? este tipo de consulta no me es familiar y no se a que se refieren.
Tambien seg.idseguidor='3' por que ese 3?
Perdona por mi ignorancia
  #9 (permalink)  
Antiguo 20/02/2011, 13:43
Avatar de goroscer  
Fecha de Ingreso: mayo-2008
Mensajes: 75
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: unir 2 tablas

te puse de forma generica, por ejemplo: en seg.campo1 deberias de reemplazar por un campo de Seguidores y asi...el 3 lo puse por ponerlo. Alli deberia ir la variable con la que identificas al usuario, por ejemplo en php seria $idusuario.
__________________
"La verdadera locura quizá no sea otra cosa que la sabiduría misma que, cansada de descubrir las vergüenzas del mundo, ha tomado la inteligente resolución de volverse loca"
  #10 (permalink)  
Antiguo 20/02/2011, 14:06
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: unir 2 tablas

Pues no me muestra ningun dato.
  #11 (permalink)  
Antiguo 20/02/2011, 14:11
Avatar de goroscer  
Fecha de Ingreso: mayo-2008
Mensajes: 75
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: unir 2 tablas

je...pero te da algun error? has probado la consulta con alguna herramienta? si tienes phpmyadmin pruebala alli. Saludos!
__________________
"La verdadera locura quizá no sea otra cosa que la sabiduría misma que, cansada de descubrir las vergüenzas del mundo, ha tomado la inteligente resolución de volverse loca"
  #12 (permalink)  
Antiguo 20/02/2011, 14:14
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: unir 2 tablas

No me da ningun error.... desde phpmyadmin pone esto

MySQL ha devuelto un valor vacío (i.e., cero columnas). ( La consulta tardó 0.0004 seg )
SELECT u.id_usuarios, seg.idseguido, co.idusuario_comentarios
FROM seguidores seg
INNER JOIN usuarios u ON ( seg.idseguidor = u.id_usuarios )
INNER JOIN comentarios co ON ( co.idusuario_comentarios = seg.idseguidor )
WHERE seg.idseguido = '6'
LIMIT 0 , 30
  #13 (permalink)  
Antiguo 20/02/2011, 14:18
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: unir 2 tablas

La tabla que quiero mostrar todos los datos es la de comentarios, que es donde se insertan todos los comentarios, de la tabla usuarios la pongo para cojer el nombre_real y la imagen.
No se si has tenido esto en cuenta...
  #14 (permalink)  
Antiguo 20/02/2011, 14:21
Avatar de goroscer  
Fecha de Ingreso: mayo-2008
Mensajes: 75
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: unir 2 tablas

Probemos asi:

SELECT co.idusuario_comentarios FROM usuarios u INNER JOIN comentarios co ON (co.idusuario_comentarios=u.id_usuarios) WHERE u.id_usuarios='6'
__________________
"La verdadera locura quizá no sea otra cosa que la sabiduría misma que, cansada de descubrir las vergüenzas del mundo, ha tomado la inteligente resolución de volverse loca"
  #15 (permalink)  
Antiguo 20/02/2011, 14:31
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: unir 2 tablas

Vale... ahora me salen solo mis registros, pero no me salen los registos de la tabla seguidores.

En la tabla seguidores he colocado el ID del usuario 3 (yo soy el 6) pero no me salen los registros de ese usuario.
  #16 (permalink)  
Antiguo 20/02/2011, 14:39
Avatar de goroscer  
Fecha de Ingreso: mayo-2008
Mensajes: 75
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: unir 2 tablas

claro, por que no hemos hemos incluido a seguidores en la consulta, ahora probemos agregarlo:

SELECT co.idusuario_comentarios, se.id_seguidores FROM usuarios u INNER JOIN comentarios co ON (co.idusuario_comentarios=u.id_usuarios) INNER JOIN seguidores se ON (se.idseguidor=u.id_usuarios) WHERE u.id_usuarios='6'

ahora bien, el campo en comun entre seguidores, usuarios, comentarios es idseguidor o idseguido? en cualquier caso deberias de reemplazar el adecuado en la consulta.
__________________
"La verdadera locura quizá no sea otra cosa que la sabiduría misma que, cansada de descubrir las vergüenzas del mundo, ha tomado la inteligente resolución de volverse loca"
  #17 (permalink)  
Antiguo 20/02/2011, 14:43
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: unir 2 tablas

idseguidor
  #18 (permalink)  
Antiguo 20/02/2011, 14:47
Avatar de goroscer  
Fecha de Ingreso: mayo-2008
Mensajes: 75
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: unir 2 tablas

bueno. Entonces que resultado da la consulta=
__________________
"La verdadera locura quizá no sea otra cosa que la sabiduría misma que, cansada de descubrir las vergüenzas del mundo, ha tomado la inteligente resolución de volverse loca"
  #19 (permalink)  
Antiguo 20/02/2011, 14:50
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: unir 2 tablas

Solo me salen mis comentarios, no me salen los comentarios del usuario 3 que es al que he añadido.

El usuario 6 (yo) tengo 3 comentarios y el usuario 3 tiene 1 comentario.
En la tabla seguidores esta asi.
idseguidor 6
idseguido 3
  #20 (permalink)  
Antiguo 20/02/2011, 22:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Tema movido desde PHP a Mysql

Etiquetas: tablas, unir
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 10:37.