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 :

GROUP BY et ORDER BY


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut GROUP BY et ORDER BY
    Bonjour,

    je me casse la tete depuis cet apres midi sur une requête que je n'arrive pas a trouver!!

    j'ai les 2 tables mysql suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    produits:
    id_produit, id_theme
    ------------------------------------------
    10          12
    11          14
    12          12
     
    produits_references:
    id_produit, id_produit_ref, dt_maj
    ------------------------------------------
    10          101             2012-04-12
    10          102             2012-04-10
    11          103             2012-04-14
    12          104             2012-04-18
    j'aimerais juste afficher les 2 derniers produits mis a jour par thème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT pr.* FROM produits_references AS pr INNER JOIN produits AS p ON pr.id_produit = p.id_produit GROUP BY p.id_theme GROUP BY pr.date_maj DESC
    la requête fonctionne mais me retourne id_produit_ref=101 au lieu de 104

    Auriez vous une idée SVP?

    Merci

  2. #2
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Peut-être peux-tu t'inspirer de cet exemple.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    Merci pour ta réponse.
    j'avais justement vu cet example mais j'ai pas réussi a l'adapter a mon cas puisque je me base sur un champ date...

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Que n'avez-vous pas compris dans la requête lié à l'exemple ?

    Elle est parfaitement adaptable à votre besoin.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    la requête me retourne tous les résultats de ma table. voici le code que j'ai mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT pr.id_produit, pr.id_produit_ref, pr.dt_update 
    FROM produits_references pr 
    INNER JOIN produits p ON pr.id_produit = p.id_produit 
    WHERE (SELECT COUNT(*) 
    	FROM produits_references pr1 
    	WHERE pr1.id_produit = pr.id_produit 
    	AND pr1.dt_update > pr.dt_update 
    ) < 2
    alors que j'aimerai avoir les lignes suivantes:
    11 103 2012-04-14
    12 104 2012-04-18

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Vous dites que vous voullez les derniers produits par thème.

    Dans la requête que vous avez écrit vous ne testez pas du tout ça, vous comparez des id_produit par rapport à la date d'update.

Discussions similaires

  1. Group by et order by
    Par LebronPA dans le forum Requêtes
    Réponses: 5
    Dernier message: 03/06/2009, 12h36
  2. Requête linq group by et order by
    Par LebronPA dans le forum Linq
    Réponses: 0
    Dernier message: 03/06/2009, 10h44
  3. [SQL] group by et order by dans la même requête ?
    Par thomfort dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/08/2007, 22h31
  4. Distinct, group by et order by
    Par gloubi dans le forum Langage SQL
    Réponses: 8
    Dernier message: 27/11/2006, 16h53
  5. [SQL] Jointure,Group BY et ORDER BY COUNT qui marche pas
    Par Stef784ever dans le forum Langage SQL
    Réponses: 8
    Dernier message: 17/08/2005, 12h28

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