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

Unir 3 tablas y ordenarlas por fecha

Estas en el tema de Unir 3 tablas y ordenarlas por fecha en el foro de Mysql en Foros del Web. Hola a todos; Estoy intentando unir 3 tablas y ordenarlas por la fecha de 2 tablas. Lo que quiero hacer es una consulta y mostrar ...
  #1 (permalink)  
Antiguo 20/02/2011, 16:50
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 2 meses
Puntos: 5
Unir 3 tablas y ordenarlas por fecha

Hola a todos;
Estoy intentando unir 3 tablas y ordenarlas por la fecha de 2 tablas.
Lo que quiero hacer es una consulta y mostrar todos los campos de una tabla en la que el usuario a insertado unos comentarios y a la vez que muestre los comentarios de otros usuarios que ese usuario haya seleccionado.

Tengo 3 tablas
Tabla USUARIO
Tabla Comentarios
Tabla Seguimiento

En la tabla Usuarios guardo todos los datos del usuario.
En la tabla comentarios guardo los comentarios y guardo el ID del usario que los inserta.
En la tabla Seguimiento guardo il ID del usuario al que quiero ver sus comentarios.

La tabla Seguimiento tengo estos campos
idseguidor (el usuario logueado)
idseguido (el usuario al que quiero ver sus comentarios)

Ahora lo que necesito es que me muestre tanto mis comentarios como los de los usuarios que esten en la tabla seguidores.

He echo esta consulta
Código PHP:
SELECT  co.idusuario_comentariosco.textoco.fecha_comentariosse.idseguidoru.imagen_pequeuu.id_usuariosDATE_FORMAT(fecha_comentarios'%d-%m-%Y'fechita,  DATE_FORMAT(fecha_comentarios'%H:%i:%s'hora FROM comentarios co INNER JOIN usuarios u ON co.idusuario_comentarios=u.id_usuarios INNER JOIN seguidores se ON se.idseguidor=co.idusuario_comentarios WHERE co.idusuario_comentarios='$jefe' 
Pero solo me salen mis comentarios, no me salen los de los usuarios de la tabla seguimiento.
Donde puede estar el fallo?
  #2 (permalink)  
Antiguo 20/02/2011, 21:16
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, 4 meses
Puntos: 2658
Respuesta: Unir 3 tablas y ordenarlas por fecha

Es un problema de lógica: Planteas la relación de modo que la tabla comentarios tenga el campo idusuario_comentarios sea el usuario que hizo el comentario, pero a su vez la tabla de seguidores también contenga como FK el valor de ese mismo campo. Esto no es lógico; los seguidores de un comentario no son seguidores del usuario que hizo el comentario. La tabla seguidores en todo caso es una relación N:N entre comentarios y usuario, por lo que lo que corresponde es que vayan las PK de comentario y usuario. De ese modo quedaría mas o menos así:
Código MySQL:
Ver original
  1.     co.idusuario_comentarios,
  2.     co.texto,
  3.     co.fecha_comentarios,
  4.     se.idseguidor,
  5.     u.imagen_pequeu,
  6.     u.id_usuarios,
  7.     DATE_FORMAT(fecha_comentarios, '%d-%m-%Y') fechita,
  8.     DATE_FORMAT(fecha_comentarios, '%H:%i:%s') hora
  9.     comentarios co
  10.     INNER JOIN usuarios u ON co.idusuario_comentarios=u.id_usuarios
  11.     INNER JOIN seguidores se ON se.idcomentario=co.idcomentario
  12.     co.idusuario_comentarios='$jefe'
Esa consulta relacionaría los comentarios, con sus autores y sus seguidores.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: tablas, unir, fechas
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 20:21.