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 :

Une requête SQL


Sujet :

Langage SQL

  1. #1
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Points : 172
    Points
    172
    Par défaut Une requête SQL
    Bonjour,

    Ma table se présente comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    _______________
    pseudo  | produit
    _______________
    pseudo1 |    1
    pseudo1 |    1
    pseudo2 |    2
    pseudo2 |    2
    J'aimerais faire une requête qui compte le nombre de produit par pseudo.
    Merci

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    La 1ère chose qui m'interpelle, c'est, comment se fait il qu'il y ait autant de données redondantes (chose qu'il ne faut pas faire, ou à éviter, sauf cas particulier).

    -> 2 lignes avec 2 fois "pseudo1 (idem avec "pseudo2").
    -> Puis le "pseudo1" contient 2 fois le même produit.

    Théoriquement, qui dit pseudo dit utilisateurs (membres, users, peu importe).
    N'y a t-il pas une table "utilisateurs" avec un ID et les pseudos associés, ce qui après permettrait de lier ces 2 tables ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    pseudo_id | produit
        1     |    1
        1     |    1
        2     |    2
        2     |    2

    Mais encore, au lieu de répéter autant de fois un même produit pour un même utilisateur, pourquoi ne pas rajouter un champ "quantité", ce qui règlerait ce problème théoriquement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    pseudo_id | produit | quantite
        1     |    1    |   2
        2     |    2    |   2

    A coté de ça, un utilisateur ne peut il pas avoir des produits différents (ton schéma ne le montre pas) avec des quantités différents ?
    pseudo1 : produit1 (quantité 3) + produit4 (quantité 2)
    Ce qui donne 2 produits, mais aussi une quantité total de 5 produits.
    Si c'est le cas, qu'est-ce que tu souhaiterais obtenir ? (2 ou 5)

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    Salut.

    Je te conseille d'utiliser un GROUP BY :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT client_id AS  `Id client` , COUNT( * ) AS  `Nombre de produits` 
    FROM produits
    GROUP BY client_id

Discussions similaires

  1. Pb sur une requête SQL (de champ vide)
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/07/2004, 11h12
  2. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  3. Récupurer via une requête SQL la valeur la plus proche
    Par yoda_style dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/04/2004, 13h52
  4. Résultat d'une requète SQL
    Par camino dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/02/2004, 15h22
  5. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26

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