REQUETE JOINTURE ET ORDER BY

didygwatinik
Messages postés
58
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
15 décembre 2009
- 21 mars 2009 à 00:49
didygwatinik
Messages postés
58
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
15 décembre 2009
- 24 mars 2009 à 22:16
Bonjour,
Je suis actuellement en train de faire une messagerie. Dans ma boite de réception, j'ai des flèches qui permettent d'afficher par ordre croissant ou non les messages envoyés par un destinataire. On tri donc sur le login du destinataire. J'ai donc fait la requête suivante pour l'affichage par ordre décroissant: SELECT * FROM mail M, contact C WHERE M.senderMail = C.idContact AND senderMail=1 ORDER BY loginContact DESC LIMIT 0, 20;
Mais elle ne marche pas et c'est pareil pour l'ordre croissant avec ASC. Je ne comprends pas pourquoi sachant que j'en ai fais une du même type pour la date et elle marche parfaitement. Si quelqu'un pouvait m'aider, ça serait sympa.  Voilà le schéma des tables concernées :
MAIL(idMail,#senderMail,#receiverMail,titleMail,messageMail,timestampMail)
CONTACT(idContact,nameContact,fnameContact,loginContact,passwordContact)

Merci pour votre aide

5 réponses

aieeeuuuuu
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
2
23 mars 2009 à 15:09
bonjour,

qu'entends-tu par :
"mais elle ne fonctionne pas" ?
tu as une erreur ? le résultat n'est pas trié ? ...

si tu peux nous en dire plus, sur le resultat que tu obtiens, ca nous aiderais...
0
didygwatinik
Messages postés
58
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
15 décembre 2009

24 mars 2009 à 00:05
Le résultat n'est pas triée mais je n'obtiens pas d'erreur. J'ai 3 personnes qui m'envoient des mails  dans ma boite Léo (2 mails), Nath (2 mails) et JM (1 mail). J'obtiens pour l'affichage croissant : JM, Léo, Nath, Nath, Léo.
C'est bizarre!!! Je ne vois pas où est l'erreur ma requête me parait correcte.
0
aieeeuuuuu
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
2
24 mars 2009 à 10:17
hmmm

est-ce que tu as fait un copier/coller de ta requête ici ?
car en la regardant de plus près, je ne vois pas comment tu peux obtenir plusieurs logins différents :
WHERE M.senderMail = C.idContact AND senderMail=1

tu fais une jointure sur l'ID de l'expéditeur, et tu filtre pour ID expéditeur = 1
donc je ne vois pas comment tu peux récupérer les contacts ayant un autre ID que 1...

la ya un truc que je pige pas !
0
didygwatinik
Messages postés
58
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
15 décembre 2009

24 mars 2009 à 22:03
En fait j'ai fait un echo de ma requête. Si je veux trié mes mails par le login qui sont dans la table contact la requête SELECT * FROM mail M, contact C WHERE M.senderMail = C.idContact AND senderMail=$idUser ORDER BY loginContact DESC LIMIT 0, 20; n'est pas valable?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
didygwatinik
Messages postés
58
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
15 décembre 2009

24 mars 2009 à 22:16
C'est bon finalement , j'ai fait un order by sur le senderMail et non pas sur le loginContact j'affiche ensuite le login. Merci pour ton aide aieeeuuuuu.
0