IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

pb alias dans "order by"


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 122
    Par défaut pb alias dans "order by"
    Bonjour,

    J'ai une requete qui utilise un alias dans un order by :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $req ="select xxx, xxx, (prixJournee*duree) as prixTotal, ... from XXX, XXX, ...
    where ...
    order by prixTotal asc" ,
    C'est bizarre car cela semble marcher dès fois, sauf que parfois ça n'est pas tout à fait le bon ordre !?

    Une idée ??

  2. #2
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    si l'alias est reconnu dans le order by, alors ce que tu racontes est impossible.

    il manque un détail important à ton histoire!

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 122
    Par défaut peut-être un détail qui compte
    Merci gene69,

    Peut-être que le détail qui manque est que prixJournee et duree sont des colonnes appartenant chacune à une table différente qui intervient dans la jointure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $req ="select xxx, xxx, (prixJournee*duree) as prixTotal, ... from XXX,YYY, ...
    where ...
    order by prixTotal asc" ,
    prixJournee col de XXX
    duree col de YYY

    est-ce que cela expliquerait le pb ?

  4. #4
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    est ce que tu peux tester la forme suivante?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT x.PROD 
    FROM ( 
     SELECT a.coef*b.value as PROD
     FROM a, b ) as x
    ORDER BY PROD
    ___
    EDIT: pour ma culture, quelle version de mysql?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 122
    Par défaut erreur de ma part
    Merci gene69,

    Je viens de m'apercevoir de mon erreur :
    le prixTotal calculé dans la requête n'était pas celui affiché (qui tenait compte d'une "taxe" en plus) de ce fait pour prixJournee = 0 on avait prixTotal =0 donc pas d'ordre entre 2 lignes de même prixTotal et dans ce que j'affichais je rajoutais la "taxe" journalière donc dans ce cas il y avait bien un ordre (plus grand = duree la plus grande)

    Donc pas de pb avec SQL !
    Désolé de t'avoir fait bosser pour rien.

    Merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/04/2005, 14h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo