Auteur Sujet: Sous-requètes sql : ordre des résultats? [résolu]  (Lu 1384 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Ginz

  • Débutant
  • *
  • Messages: 2
Sous-requètes sql : ordre des résultats? [résolu]
« le: 22 novembre 2010 à 12:34:20 »
Bonjour
J'ai une petite question... Voilà j'ai ma requête SQL



SELECT A.elementx B.elementy  
FROM  
        (       SELECT inter_ABC.ID_A,inter_ABC.ID_B
                FROM inter_ABC  
                WHERE inter_ABC.ID_C = (
                        SELECT C.ID
                        FROM C
                        WHERE C.ID_X = 23 AND C.ID = 2)
                ORDER BY inter_ABC.ordre )list,
        A,
        B      
WHERE A.ID = list.ID_A   AND    B.ID = list.ID_B ;



Elle se base sur ces tables :

A
-> ID
-> elementx

B
->ID
->elementy

C
-> ID
-> ID_X


inter_ABC
-> ID_A
-> ID_B
-> ID_C
-> ordre

avec des relation du type
ID_X 1--1 C
C 1--n inter_ABC
inter_ABC n--1 A
inter_ABC n--1 B

ce que je veux quelle fasse :

A partir de ID_X et C.ID liés dans C donnés,
je voudrais trouver LES paires de A.élémentx et B.elementy tel que ID_A, ID_B et C soient liés dans inter_ABC
en affichant le résultat dans l'ordre fixé par inter_ABC.ordre.


Résultat:
Elle le fait. En local tout est bon (mysql 5.0.5dev )  ! Mais ICI ( mysql 5.0.51a) sur le serveur les données fournies sont justes mais pas dans le bon ordre.
Problème de version différente de mysql?
Est-ce une erreur dans la requête?
Y a-t-il moyen d'écrire cette requête autrement?


Merci Ginz
« Modifié: 22 novembre 2010 à 17:42:48 par Ginz »

Hors ligne Yannick!

  • Administrateur
  • Habitué
  • *****
  • Messages: 143
Re : Sous-requètes sql : ordre des résultats?
« Réponse #1 le: 22 novembre 2010 à 15:43:05 »
Bonjour,

Essayez peut être de mettre le order by dans la requête principale.
ex :

SELECT A.elementx B.elementy
FROM
        (       SELECT inter_ABC.ID_A,inter_ABC.ID_B, inter_ABC.ordre
                FROM inter_ABC
                WHERE inter_ABC.ID_C = (
                        SELECT C.ID
                        FROM C
                        WHERE C.ID_X = 23 AND C.ID = 2)
                )list,
        A,
        B     
WHERE A.ID = list.ID_A   AND    B.ID = list.ID_B ORDER BY list.ordre;

Cordialement

Yannick

Hors ligne Ginz

  • Débutant
  • *
  • Messages: 2
Re : Sous-requètes sql : ordre des résultats?
« Réponse #2 le: 22 novembre 2010 à 17:41:24 »
Merci... c'est tout bête, mais je tourne sur ce problème depuis un petit temps...maintenant ça fonctionne super! Encore Merci!