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

Langage SQL Discussion :

Trier une jointure sur le nombre de fois qu'une valeur est citée


Sujet :

Langage SQL

  1. #1
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut Trier une jointure sur le nombre de fois qu'une valeur est citée
    Bonjour,

    J'ai 2 tables :
    Produits
    Commentaires

    id.produits = identifiant.commentaires

    je cherche a afficher les produits qui ont le plus de commentaires, donc ce qui correspond au nombre de fois ou un identifiant est le plus répété dans la table commentaires.

    J'arrive a joindre les tables mais pas a les trier comme je le souhaite,

    Merci de vos réponses.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Points : 164
    Points
    164
    Par défaut
    pourrais tu nous montrer ta requête ?

  3. #3
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    Voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT * 
    FROM produits, commentaires
    WHERE 1 
    AND produits.id = commentaires.identifiant
    AND commentaires.securite =1
    ORDER BY produits.id DESC 
    LIMIT 0 , 16

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 135
    Points : 164
    Points
    164
    Par défaut
    Porrions avoir un exemple de données entrées et ce que tu souhaites avoir comme resultat en sortie.
    Ta requête spécifie un simple select sans gérer une quantité.

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Il faut effectuer un comptage et regrouper par produit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      SELECT p.id, count(*) as nb_commentaires
        FROM produits p
             INNER JOIN commentaires c
               ON c.identifiant = p.id
       WHERE c.securite = 1
    GROUP BY p.id
    ORDER BY nb_commentaires DESC

  6. #6
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    Effectivement cela me sort un tableau avec 2 champs: id et nb_commentaires, mais je n'ai pas les champs de la table produits comme le titre et tout le reste.

  7. #7
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Et bien rajoutez les dans le SELECT et dans le GROUP BY.

    Comme vous n'avez pas décrit vos tables, et que ma boule de cristal est en panne

  8. #8
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    Merci Beaucoup Waldar !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/02/2013, 05h46
  2. Réponses: 40
    Dernier message: 02/11/2011, 17h41
  3. trier par le nombre de fois que la valeur est présente
    Par Kage57 dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/05/2009, 15h43
  4. Réponses: 0
    Dernier message: 30/10/2008, 12h29
  5. limiter le nombre d'enregistrements d'une jointure
    Par dubem1 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 19/12/2005, 08h29

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