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

Requêtes MySQL Discussion :

Récupérer la plus grande valeur (select max)


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut (Résolu)Récupérer la plus grande valeur (select max)
    Bonsoir à tous

    Je suis nouveau et je vous pose ma 1ère question.J'ai deux tables ci-dessous et je cherche à connaître le produit le plus cher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Table1(produit,idproduit...)
    Table2(prix,idproduit..)
    La requête suivante me permet de connaître le prix le plus cher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select max(prix)
    from Table2
    Aucun souci de ce côté là.

    La requête suivante me permet de retrouver si j'ai plusieurs fois le même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    produit,le plus coûteux:
    select max(prix),produit
    from Table1 a,Table2 b
    where a.idproduit=b.idproduit
    group by produit
    Par exemple, si j'ai deux bouteilles (une à 3€ et une à 5€) et deux verres(l'un à 5€ et le second à 7€),j'aurai la bouteille la plus chère(5€) et le verre le plus cher(7€)

    Mais ce que je veux, c'est connaître, le produit le plus cher, soit ici le verre à 7€.En fait la requête précédente me permet de le retrouver.Il correspond à la première ligne si je fais un tri par ordre décroissant mais je ne veux qu'une seule ligne.J'ai donc essayé la requête suivante sans succès:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select produit,prix
    from Table1,Table2
    where a.idproduit=b.idproduit
    and prix=(select max(prix)
    from Table2,Table1
    J'ai deux erreurs: une vers le mot Table2 et là 2ème: le curseur n'a pas été déclaré.

    Je travaille avec MySQL

    Merci par avance de votre aide

    Edit: a priori, je me suis trompé de catégorie.Je ne travaille pas avec php.Un modérateur peut-il déplacer mon message afin que je ne fasse pas un double postage.Merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux utiliser LIMIT 1
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu peux utiliser LIMIT 1
    Bonsoir

    Autant pour moi pour l'oubli des balises.J'essaie ça lundi.Merci.

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    La requête suivante devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select t1.produit, t2.prix
    from table1 t1
    inner join table2 t2 on t1.idproduit = t2.idproduit
    where t2.prix = (
      select max(prix)
      from table2
    )
    Bien sûr, il faut que ta version de MySQL accepte les sous-requêtes (version 4.1 minimum).

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par ced Voir le message
    Bonjour,

    La requête suivante devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select t1.produit, t2.prix
    from table1 t1
    inner join table2 t2 on t1.idproduit = t2.idproduit
    where t2.prix = (
      select max(prix)
      from table2
    )
    Bien sûr, il faut que ta version de MySQL accepte les sous-requêtes (version 4.1 minimum).

    ced
    Bonjour,

    Je regarde ça également demain.Merci.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Merci ced, la requête que tu m'as donnée fonctionne tout à fait.
    Sabotage, merci mais j'ai un message d'erreur vers le mot limit.

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

Discussions similaires

  1. Récupérer les plus grandes valeurs avec group by
    Par mysticpete dans le forum Doctrine2
    Réponses: 2
    Dernier message: 24/04/2013, 15h09
  2. Récupérer la plus grande valeur sur 3
    Par cdalo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/02/2012, 22h26
  3. Réponses: 33
    Dernier message: 01/07/2011, 10h32
  4. VBA_E : Selection des 5 plus grandes valeurs d'une colonne..
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/09/2006, 17h39
  5. [XPath]fonction récupérer plus grand valeur d'un attribut ?
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 18/05/2006, 14h27

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