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

Consulta a tres tablas con JOIN

Estas en el tema de Consulta a tres tablas con JOIN en el foro de Mysql en Foros del Web. Buenos días, Necesito realizar una consulta entre 3 tablas que tienen la información siguiente: Usuarios (codUsuario,nombre,apellido1,apellido2) Mensajes (idMensaje,FKRemitente,fechaenvio,asunto,contenido , MensajePadre) DestinatariosMensajes (FKIdMensaje,FKDestinatario, Estado) He utilizado ...
  #1 (permalink)  
Antiguo 11/04/2013, 03:34
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 17 años, 7 meses
Puntos: 14
Consulta a tres tablas con JOIN

Buenos días,

Necesito realizar una consulta entre 3 tablas que tienen la información siguiente:

Usuarios(codUsuario,nombre,apellido1,apellido2)
Mensajes(idMensaje,FKRemitente,fechaenvio,asunto,contenido , MensajePadre)
DestinatariosMensajes(FKIdMensaje,FKDestinatario, Estado)

He utilizado la siguiente sentencia SQL pero no me devuelve un resultado correcto, ya que me toma el remitente como destinatario.

Código:
SELECT mensajes.idMensaje, mensajes.fechaenvio, mensajes.FKRemitente, mensajes.asunto, mensajes.contenido, mensajes.FKMensajePadre, destinatariosMensaje.FKDestinatario, destinatariosMensaje.estado,
usuarios .nombre, usuarios .apellido1, usuarios .apellido2
FROM mensajes
JOIN usuarios on mensajes.FKRemitente = usuarios.codUsuario
JOIN destinatariosMensaje on usuarios.codUsuario = destinatariosMensaje.FKDestinatario
Si me pudieran aportar un poco de luz al respecto, ya que lo que pretendo es obtener todos los mensajes y sus destinatarios, ya que un mismo mensaje puede ser enviado a varios destinatarios.

Gracias de antemano.
Saludos cordiales.
  #2 (permalink)  
Antiguo 11/04/2013, 03:49
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 17 años, 7 meses
Puntos: 14
Respuesta: Consulta a tres tablas con JOIN

Buenos días amigos, ya lo he resuelto, al menos por ahora

He utilizado la siguiente sentencia:

Código:
SELECT mensajes.idMensaje, usr.nombre, mensajes.asunto, mensajes.contenido, mensajes.FKRemitente, destinatariosMensaje.FKDestinatario, usd.nombre
FROM mensajes
JOIN destinatariosMensaje ON mensajes.idMensaje = destinatariosMensaje.FKidMensaje
JOIN usuarios AS usr ON mensajes.FKRemitente = usr.codUsuario
JOIN usuarios AS usd ON destinatariosMensaje.FKDestinatario = usd.codUsuario
Por si le sirve a alguien.

Saludos cordiales.
Francisco J.
  #3 (permalink)  
Antiguo 11/04/2013, 05:42
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: Consulta a tres tablas con JOIN

@geofran80: Este tipo de temas se ha tratado infinidad de veces, con explicaciones muy detalladas.
Por favor, usa el buscador del foro cuando se trate de cosas así. Ayudará a que tengas soluciones más rápido.
__________________
¿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: select, tablas
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 01:45.