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 :

problème ave LEFT JOIN dans MySql


Sujet :

Requêtes MySQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut problème ave LEFT JOIN dans MySql
    Bonjour, je demande de l'aide sur une requete que je fais dans MySql 4.1.9, dans laquelle j'applique plusieurs LEFT JOIN.

    J'ai une table "club"
    ------------------------------------------------------------
    -- Structure de la table `club`
    --
    CREATE TABLE `club` (
    `id_club` int(3) NOT NULL auto_increment,
    `nom_club` varchar(50) NOT NULL default '',
    PRIMARY KEY (`id_club`)
    )
    --
    -- Contenu de la table `club`
    --
    INSERT INTO `club` VALUES (1, 'toto');
    INSERT INTO `club` VALUES (2, 'tata');
    ------------------------------------------------------------

    et j'ai la table "joueur"
    ------------------------------------------------------------
    -- Structure de la table `joueur`
    --
    CREATE TABLE `joueur` (
    `id_joueur` int(3) NOT NULL auto_increment,
    `id_club` int(3) NOT NULL default '0',
    `avis` int(1) NOT NULL default '0',
    PRIMARY KEY (`id_joueur`)
    )
    --
    -- Contenu de la table `joueur`
    --
    INSERT INTO `joueur` VALUES (1, 1, 0);
    INSERT INTO `joueur` VALUES (2, 2, 0);
    INSERT INTO `joueur` VALUES (3, 1, 1);
    INSERT INTO `joueur` VALUES (4, 1, 1);
    INSERT INTO `joueur` VALUES (5, 2, 2);
    INSERT INTO `joueur` VALUES (6, 2, 2);
    ------------------------------------------------------------

    Je veux le résultat suivant pour chacun de mes 2 clubs :
    son identifiant, le nombre de joueurs dont l'avis est 0, le nombre de joueurs dont l'avis est 1 et le nombre de joueurs dont l'avis est 2.

    Ca doit ressembler a ca :
    1 | 1 | 2 | 0
    2 | 1 | 0 | 2

    J'ai fait la requete suivante sans le succès escompté :
    ---------------------------------
    select
    cl.id_club,
    count(jr0.avis) as neutre,
    count(jr1.avis) as favorable,
    count(jr2.avis) as defavorable
    from
    (club cl)
    left join joueur jr0 on
    jr0.id_club = cl.id_club and jr0.avis = 0
    left join joueur jr1 on
    jr1.id_club = cl.id_club and jr1.avis = 1
    left join joueur jr2 on
    jr2.id_club = cl.id_club and jr2.avis = 1
    group by 1
    ---------------------------------

    Avant de tenter ma chance dans ce forum, j'ai essayé de trouvé des infos sur en ligne mais j'ai pas trouvé grand chose. Je pense avoir compris le principe du LEFT JOIN mais à la vue du résultat, du coup j'en doute.

    J'espère être assez clair dans mon explication mais si c'est pas le cas, n'hésitez pas à me demander d'autres infos.

    Pour le moment, je me suis résigner à faire plusieurs requetes afin d'arriver à ce que je veux mais c'est vraiment pas top.

    Merci d'avance à ceux qui veulent m'aider.

    Laurent

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select id_club, avis, count(avis) as nb
    from joueur 
    group by id_club, avis
    order by id_club, avis
    donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    club  avis    nb
    1	0	1
    1	1	2
    2	0	1
    2	2	2
    Ensuite tu fais ton traitement en php.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    En fait, je souhaite regler le problème directement dans la requete plutot que d'avoir à gérer ca avec du PHP.

    Y'a forcemement un moyen d'y arriver avec un left join.

    Merci quand même jeca.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    personne ne peut m'aider ?

Discussions similaires

  1. Problème de LEFT JOIN
    Par Louch dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/09/2007, 12h17
  2. Problème avec LEFT JOIN
    Par okilele dans le forum Outils
    Réponses: 2
    Dernier message: 13/08/2007, 12h55
  3. Problème avec LEFT JOIN
    Par Sorgue dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/01/2007, 18h37
  4. Combiner plusieurs LEFT JOIN dans une requète
    Par feanor12 dans le forum Access
    Réponses: 3
    Dernier message: 24/08/2006, 13h39
  5. [PHPMyAdmin]Problème avec "Not Null" dans mysql 5
    Par Ryan Sheckler dans le forum Requêtes
    Réponses: 4
    Dernier message: 15/12/2005, 14h45

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