petit soucis requete sql sur deux table ( order spécial :) )

petit soucis requete sql sur deux table ( order spécial :) ) - SQL/NoSQL - Programmation

Marsh Posté le 11-08-2006 à 14:33:00    

Bonjour à tous !
 
 
oyez oyez je ne vois pas comment faire, apparement ma requete ne marche pas :
(mysql)
 
explication :
 
table 1 : membre
id_m int(1) clef
m_last int(1) -> time() de la derniére connexion  
 
table 2 : relation
r_id1 -> correspond à l'id_m du 1er membre
r_id1 -> correspond à l'id_m du 2eme membre
 
je voudrais en fait sortir les membres en relation et les classer par la date time de la derniére connexion :
 
j'ai fait :
 

Code :
  1. SELECT relations.r_id1,relations.r_id2 FROM relations,membres WHERE (relations.r_id1='14' or relations.r_id2='14') AND ( membres.id_m= '14' ) ORDER BY membres.m_last DESC


 
mais ca ne marche pas, il me classe pas dans l'ordre que je veux :'(
 
 
 
une idée ????

Reply

Marsh Posté le 11-08-2006 à 14:33:00   

Reply

Marsh Posté le 11-08-2006 à 15:29:32    

Il faudrait que le champ du critère de tri soit présent dans la liste des champs sélectionnés.

Reply

Marsh Posté le 11-08-2006 à 15:33:20    

Il y a une logique qui m'échappe dans ton raisonnement et les tables que tu donnes.
Pourquoi tu fais un filtre sur le membre '14' dans ta requête déjà ?
 
Tu souhaites classer les membres en relation avec le membre 14 en fonction de leur derniere connexion ?

Reply

Marsh Posté le 11-08-2006 à 15:45:00    

darkfrost a écrit :

Il y a une logique qui m'échappe dans ton raisonnement et les tables que tu donnes.
Pourquoi tu fais un filtre sur le membre '14' dans ta requête déjà ?
 
Tu souhaites classer les membres en relation avec le membre 14 en fonction de leur derniere connexion ?


 
 
nan en fait je voudrais sortir la liste des personnes en relations avec 14 ( 14 = exemple ici , et les classés en fonction des times des derniéres connexions des personnes en relations.
 
 
je sais pas si je suis assez clair ?

Reply

Marsh Posté le 11-08-2006 à 15:47:16    

100top a écrit :

nan en fait je voudrais sortir la liste des personnes en relations avec 14 ( 14 = exemple ici , et les classés en fonction des times des derniéres connexions des personnes en relations.
 
 
je sais pas si je suis assez clair ?


 
 
en fait j'ai compris la en fait il me class uniquement en fonction de la table_membre alors que je voudrais qu'il me les classes en fonctions de la table relation ...

Reply

Marsh Posté le 11-08-2006 à 15:53:19    

Code :
  1. SELECT r_id1, r_id2, m_last
  2. FROM relation, membres
  3. WHERE r_id1 = id_m
  4. AND r_id2 = 14
  5. UNION ALL
  6. SELECT r_id1, r_id2, m_last
  7. FROM relation, membres
  8. WHERE r_id2 = id_m
  9. AND r_id1 = 14
  10. ORDER BY m_last DESC


 
Essaye ça en rajoutant les quotes nécessaires et dis moi si ça te donne ce que tu veux ou pas...

Reply

Marsh Posté le 11-08-2006 à 16:00:25    

darkfrost a écrit :

Code :
  1. SELECT r_id1, r_id2, m_last
  2. FROM relation, membres
  3. WHERE r_id1 = id_m
  4. AND r_id2 = 14
  5. UNION ALL
  6. SELECT r_id1, r_id2, m_last
  7. FROM relation, membres
  8. WHERE r_id2 = id_m
  9. AND r_id1 = 14
  10. ORDER BY m_last DESC


 
Essaye ça en rajoutant les quotes nécessaires et dis moi si ça te donne ce que tu veux ou pas...


 
 
tu sais que je t'aime :p :p :p
 
merci c nikel, par contre niveau ressource sa pompe ! tu vois une autre facon de faire ou pas ? moi j'en vois pas !!!  
 
Encore merci j'etais en galére la !

Reply

Marsh Posté le 11-08-2006 à 16:10:41    

Il doit y avoir moyen d'optimiser le temps de réponse, je ne sais pas si tu as crée des relations entre tes tables (entre les champs r.idX et id_m).
D'autres t'aideront peut être la dessus ;) ! Mais oui il doit y avoir un moyen de mieux faire !
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed