[Resolu] Ordre du résultat en fonction d'une clause in.

Ordre du résultat en fonction d'une clause in. [Resolu] - SQL/NoSQL - Programmation

Marsh Posté le 04-06-2007 à 12:45:40    

Bonjour, je voudrais que le résultat d'une requête soit trié en fonction des éléments donnés dans une clause IN.
 
Exemple :
 

Code :
  1. SELECT info1, info2 FROM catgories cat, REFERENCES ref WHERE ref.id = (SELECT ref2.id FROM REFERENCES ref2, familles_references famref, familles fam WHERE fam.asso = 1 AND famref.fam_id = fam.id AND famref.ref_id = ref2.id ORDER BY fam.fam_order, ref2.ref_order) AND ref.cat_id = cat.id


 
Je voudrais que les résultats soient triés en fonction du résultat de la sous requête ( donc sur base du fam.ordre et ref.ordre) alors que la ils le seront en fonction de l'ordre dans lequel ils seront trouvés durant le parcours de ref.
 
Est-il possible de le faire sans devoir faire une jointure avec familles et familles_references ?
 
Merci


Message édité par LePhasme le 04-06-2007 à 13:35:43
Reply

Marsh Posté le 04-06-2007 à 12:45:40   

Reply

Marsh Posté le 04-06-2007 à 13:18:37    

Pourquoi veux-tu eviter la jointure?
C'est plus optimale que de faire un IN ( select ... )! Et en plus tu galerais pas sur ton order...
 

Reply

Marsh Posté le 04-06-2007 à 13:35:27    

Je pensais que ca consomerait plus de ressources mais effectivement je viens de tester et ca la requête avec le IN prend 2 fois plus de temps que la solution que tu propose.
 
Merci

Reply

Marsh Posté le 04-06-2007 à 15:41:04    

cf ma signature : les jointures c'est bon mangeai-z-en !


Message édité par MagicBuzz le 04-06-2007 à 15:41:09
Reply

Sujets relatifs:

Leave a Replay

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