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 :

[PhpMySQL]Requête compliquée


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 84
    Points : 70
    Points
    70
    Par défaut [PhpMySQL]Requête compliquée
    Bonjour,
    je suis ennuyé par une requête que je souhaite réaliser.

    Trois tables (je les simplifie):
    EVENT : NUMEVENT,RAISON
    USER : LOGIN, NOM
    USER_EVENT : LOGIN, NUMEVENT, DECISION

    -> un utilisateur participe à un event : le champ decision est remplit par autre chose que "none"
    -> un utilisateur ne participe pas à un event : le champ decision est "none"
    -> un utilisateur n'a pas encore renseigné son choix : il n'y a pas de lignes concernant l'utilisateur et l'event dans USER_EVENT

    J'aimerais avoir une liste des events avec leurs informations et le nombre d'utilisateurs qui ont pri la décision de participer à cet event.

    L'ennui c qu'avec phpmysql, les requêtes imbriquées ne sont pas possibles.....et j'ai donc du mal ) produire cette requête.

    J'aimerais aussi avoir la liste des utilisateurs et le nombre d'events auxquels ils participent....une fois que vous m'aurez aidé pour la première, je suppose que celle-ci en découlera.

    Merci beaucoup de votre aide.

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut Re: [PhpMySQL]Requête compliquée
    Citation Envoyé par Shabata
    J'aimerais avoir une liste des events avec leurs informations et le nombre d'utilisateurs qui ont pri la décision de participer à cet event.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select NumEvent, Decision, count(login)
    From UserEvent
    Group By NumEvent, Decision
    Where Decision <> 'none'
    C'est simplifié, reste à rajouter les jointures si tu veux le champ Raison par exemple.

    Je suis parti de l'hypothèse qu'un UserEvent était unique par user et par Event, est-ce juste ?

  3. #3
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 84
    Points : 70
    Points
    70
    Par défaut
    Merci de ta réponse !

    En fait, ce que tu m'as donné, je l'avais déjà fait....j'aurais du précisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT  RAISON, DECISION, count(LOGIN) FROM USER_EVENT,EVENT  WHERE EVENT.NUMEVENT=USER_EVENT.NUMEVENT AND DECISION!= "none" Group By EVENT.NUMEVENT
    Mais ça me renvoie seulement la liste des events où il ya des users qui ont pri la décision de participer.
    J'aimerais aussi avoir les évènements où personne n'a pris de décision, ainsi que les évènements où tous ceux qui ont pris leur décision, ont décidé de ne pas particper. Evidemment, pour ces evenements, la valeur COUNT serait egal à 0.
    J'ai pensé à faire des UNION, mais sans succès...

    Merci de m'aider

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Essaye (non testée...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT  Raison, Decision, COUNT(Login) 
    FROM Event e LEFT JOIN User_Event u ON  e.NumEvent = u.NumEvent
    AND Decision != 'none' 
    GROUP BY e.NumEvent, Raison, Decision
    La condition Decision != 'none' est dans le JOIN et non dans le WHERE afin que la jointure externe crée une ligne pour les EVENT dont toutes les décision sont 'none'

  5. #5
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 84
    Points : 70
    Points
    70
    Par défaut
    Merci bcp !!!
    ça marche niquel !!!!

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

Discussions similaires

  1. Requête compliquée en auto
    Par lionheart33806 dans le forum Zend_Db
    Réponses: 6
    Dernier message: 16/09/2008, 16h03
  2. Besoin d'aide pour une requête compliquée
    Par Chekov dans le forum Langage SQL
    Réponses: 2
    Dernier message: 24/01/2008, 11h59
  3. [SQL 2005] Requête Compliquée
    Par NicoNGRI dans le forum Langage SQL
    Réponses: 7
    Dernier message: 03/05/2006, 16h12
  4. besoin aide pour requête compliquée ......
    Par Ickou dans le forum Requêtes
    Réponses: 4
    Dernier message: 10/04/2006, 18h43
  5. [SQL Server] Requête compliquée
    Par Cpt Anderson dans le forum Langage SQL
    Réponses: 3
    Dernier message: 18/01/2006, 15h24

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