2016-04-24 1 views
0

J'essaye de recréer une liste de conversation comme WhatsApp où il affiche le nom de contact de la personne avec qui vous avez une conversation et aussi l'heure où le message a été posté et aussi le dernier message indépendamment de si En d'autres termes, je dois toujours voir le nom du contact et la dernière fois que le message a été posté et le dernier message qui aurait pu être envoyé par moi ou le destinataire, je dois aussi apporter sauvegarder l'image de l'autre utilisateur depuis la table des utilisateurs.MySQL WhatsApp Chat Query

UTILISATEURS TABLEAU


userid | first_name |  url   | 
--------------------------------------------- 
    101 | name1  | www.image_url1.jpg | 
    102 | name2  | www.image_url2.jpg | 
    103 | name3  | www.image_url3.jpg | 
    104 | name4  | www.image_url4.jpg | 

MESSAGES TABLEAU


MessageId | userid | senderid | message | timestamp | 
----------------------------------------------------------- 
    1  | 101 | 102 | message1 | 1234567 | 
    2  | 102 | 101 | message2 | 1234578 | 
    3  | 101 | 102 | message3 | 1235679 | 
    4  | 103 | 101 | message4 | 1256379 | 

Qu'est-ce que je suis en train d'interroger la base de données si mon userid = 101 est le dernier message et l'horodatage de soit moi ou le contact avec les contacts userid, prénom et url

userid | first_name |  url   | message | timestamp | 
--------------------------------------------------------------------- 
    102 | name2 | www.image_url2.jpg | message3 | 1235679 | 
    104 | name4 | www.image_url4.jpg | message4 | 1227878 | 
---------------------------------------------------------------------- 

1) Je veux extraire le userid, prenom et url du contact de la table des utilisateurs
2) et extraire le message le plus récent et l'horodatage de la table des messages du contact

Toute aide serait great ...

+0

Vous devriez essayer d'utiliser 'LIMIT' –

+0

J'ai besoin de montrer plus de 1 enregistrement, j'ai besoin d'un enregistrement pour chacune des conversations si cela est logique. Simular à comment les conversations de WhatsApp sont affichées – TRicks

Répondre

0

Ajoutez un LIMIT 1 à la fin de la requête et voyez si cela aide.

+1

Ceci n'est pas une réponse ... Les réponses ne finissent pas avec un point d'interrogation –

+0

Eh bien, vous avez raison. – petemir

+0

Non parce que la limite 1 ne fera que ramener un enregistrement, j'ai besoin de voir chaque conversation, mais seulement le dernier message de chaque conversation et le nom des autres utilisateurs – TRicks

0

Vous devez connaître l'ID du dernier message envoyé/reçu entre les deux utilisateurs, afin que vous puissiez obtenir les détails du message le plus récent entre eux. Votre requête n'a pas indiqué cela, ce qui devrait être dans votre clause where.

+0

J'ai un champ de messageid mais c'est une clef primaire ainsi chaque entrée donne une valeur incrémentée, ainsi devrais-je inclure un autre ID de message qui partage le messageID avec chaque message envoyé dans la même conversation et le groupe plus tard par là? Comment une requête comme ça ressemble? – TRicks

+0

Non. Utilisez cette clé primaire Gardez une trace de l'ID du dernier message que vous avez reçu et utilisez-le lors d'une requête pour nouveaux messages en disant à MySQL d'obtenir des messages avec un ID supérieur à cet identifiant, ce que vous ferez chaque fois que vous récupérez de nouveaux messages, vous comprenez? – Amir

+0

oui cela a du sens mais comment j'apporterais le message le plus haut de chaque conversation? code pour attraper le haut en fonction d'un su B requête peut-être? – TRicks