MySQL - problema con la consulta

 
Vista:

problema con la consulta

Publicado por Agustín (2 intervenciones) el 07/10/2008 13:20:49
Buenos días, estoy intentando hacer una consulta para llevar la cuenta de los mensajes que envían los usuarios a un buzón.
Tengo tres tablas, usuarios(id, codigo, nombre, apellidos ), buzon( id, codigo, nombre) y enviado(id_usuario, id_buzon)

Al aplicación, nada mas comenzar, dependiendo del usuario se le muestra la lista de buzones a los que pueden enviar un mensaje, pero cuando se envíe el mensaje quiero que ese buzón no vuelva a aparecer para ese usuario

el codigo del usuario y el codigo del buzon los uso para saber a que buzon el usuario envía el mensaje, solo se puede enviar un único mensaje al buzón. Mi problema es que no se como hacer para relacionar con mysql la tabla enviado para que cuando se listen los buzones aparezcan solo a los que el usuario no ha enviado ningun mensaje.

Acepto cualquier sugerencias, modificacion de tablas, etc.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema con la consulta

Publicado por Emiliano (98 intervenciones) el 07/10/2008 15:52:08
Hola Agustin , no se si entendi bien lo que queres hacer este parrafo no entiendo
//------------------------------------------------------------------------------------------------------------------------
"Al aplicación, nada mas comenzar, dependiendo del usuario se le muestra la lista de buzones a los que pueden enviar un mensaje, pero cuando se envíe el mensaje quiero que ese buzón no vuelva a aparecer para ese usuario"
//------------------------------------------------------------------------------------------------------------------------
Con respecto al otro parrafo podes o agregarle un campo a la tabla usuarios de cuantos mensaje se le envio a ese usuario y tambien si te sirve cuantos mensajes recibio y la consulta seria algo asi.
1)

/*Todos los usuarios que no recibieron ningun mensaje*/
SELECT nombre FROM usuarios WHERE AND count_recibidos=0;

/*Todos los usuarios que no enviaron ningun mensaje*/
SELECT nombre FROM usuarios WHERE count_enviados=0;

'count_recibidos' y 'count_enviados' son los campos a agregar obviamente cada ves que recibas algun mensaje vas a tener que hacer un UPDATE de estos campos.

2) Tambien otra forma seria algo asi:

SELECT usaurios.nombre FROM usuarios,enviado WHERE NOT usaurios.id=enviado.id_usuario;

Segun entiendo en la tabla enviados solo van a estar todos los id_usuarios que enviaron mensajes o sea el usuario que no envio ningun mensaje no va a estar en esta tabla , por eso en esta consulta voy a mostrar todos los usuarios que no estan en esta tabla.

Mientras en esta todos los que estan

SELECT DISTINCT(usaurios.nombre) FROM usuarios,enviado WHERE usaurios.id=enviado.id_usuario;
(DISTINCT() para que no repita dos veces el mismo nombre del usuario)

Otra cosa, que yo le agregaria, es un campo DATETIME asi guardas la hora que se le envio el mensaje, o cuantos mensajes fueron enviados a ese usuario en un mes ,dia , año etc.

De todos modos no se si entendi bien tu pregunta cualquier cosa si no es la respuesta que esperaba preguntame de nuevo ya que con mysql se puede hacer de todo jejejeje.

Espero que te sirva visame si la respuesta te sirvio .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con la consulta

Publicado por Agustín (2 intervenciones) el 07/10/2008 19:04:50
muchas gracias!! voy a probar lo que me dices, creo que me servirá.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar