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 :

Problème affichage suite jointure


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Problème affichage suite jointure
    Bonjour,

    Je débute dans le SQL. J'ai créé deux tables : PLAYERS_STATISTICS et CLUBS.

    Je veux afficher tous les enregistrements de tous les champs de la table PLAYERS_STATISTICS (soit 20 champs). Pour le champs CLUB (qui contient des entiers de 1 à 10), je dois aller chercher les noms (variables caractères) des clubs dans la table CLUBS.

    Je fais donc le lien entre PLAYERS_STATISTICS.CLUB = CLUBS.ID qui correspondent mais la colonne (le champs) CLUBS.NAME ne s'affichent pas.

    PS : je viens de constater ceci : il y a plus de 16000 enregistrements pour PLAYERS_STATISTICS.CLUB et seulement 600 pour CLUBS.ID. Clairement, il y a plusieurs joueurs PLAYERS_STATISTICS dans un même club CLUBS.

    Pouvez-vous m'aider à comprendre mon erreur.



    Voici ma requête :


    $query = "SELECT PLAYERS_STATISTICS.ID,PLAYERS_STATISTICS.FIRSTNAME,PLAYERS_STATISTICS.LASTNAME,PLAYERS_STATISTICS.MEMBER,PLAYERS_STATISTICS.BIRTHDATE,PLAYERS_STATISTICS.PLAYED_PERCENTAGE,PLAYERS_STATISTICS.PLAYED_MINITS,PLAYERS_STATISTICS.DOUBLE_YELLOW_CARDS,PLAYERS_STATISTICS.YELLOW_CARDS,PLAYERS_STATISTICS.RED_CARDS,PLAYERS_STATISTICS.GOALS_PER_MATCH,PLAYERS_STATISTICS.GOALS_PER_SEASON,PLAYERS_STATISTICS.SUSPENSION_DAYS,PLAYERS_STATISTICS.PENALTIES,PLAYERS_STATISTICS.COMPLETED_MATCHS,PLAYERS_STATISTICS.IN_MATCH,PLAYERS_STATISTICS.OUT_MATCH,PLAYERS_STATISTICS.SAISON,CLUBS.NAME,PLAYERS_STATISTICS.DIVISION FROM PLAYERS_STATISTICS,CLUBS WHERE PLAYERS_STATISTICS.CLUB = CLUBS.ID";
    $query .= " ORDER BY LASTNAME";
    $query .= " LIMIT $debut,$limite";

    Grand merci pour votre aide

    Xavier

  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: Problème affichage suite jointure
    Argh, mon ascenceur vertical n'est pas assez grand

    1) tu n'es pas obligé de préfixer tous tes noms de champs par le nom de table, tant que ce nom de champ n'appartient qu'à une seule table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $query = "SELECT ID, FIRSTNAME, LASTNAME, MEMBER, BIRTHDATE, PLAYED_PERCENTAGE, PLAYED_MINITS, DOUBLE_YELLOW_CARDS, YELLOW_CARDS, RED_CARDS, ...,NAME,DIVISION 
    FROM PLAYERS_STATISTICS,CLUBS 
    WHERE PLAYERS_STATISTICS.CLUB = CLUBS.ID";
    Citation Envoyé par xavier1977
    Je fais donc le lien entre PLAYERS_STATISTICS.CLUB = CLUBS.ID qui correspondent mais la colonne (le champs) CLUBS.NAME ne s'affichent pas.
    Ca paraît correct ! Tes champs NAME sont-ils bien renseignés ?
    Quel est ton SGBD ? Le champ CLUB référence-t'il bien le champ CLUBS.ID (via une Foreign Key) ?
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Ca paraît correct ! Tes champs NAME sont-ils bien renseignés ?
    Mes champs name sont renseignés comme des VARCHAR(100). Y a-t-il un problème ?

    Quel est ton SGBD ? Le champ CLUB référence-t'il bien le champ CLUBS.ID (via une Foreign Key) ?

    Ma DB est sur MySQL.
    Par contre, je ne comprends pas ta deuxième question. C'est quoi une Foreign Key ?

    Merci pour ton aide

  4. #4
    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
    Citation Envoyé par xavier1977
    Mes champs name sont renseignés comme des VARCHAR(100). Y a-t-il un problème ?
    Non, je voulais dire : "Y-at'il bien des données à afficher ?"

    ie, si tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Name FROM Clubs;
    , visualises-tu bien tous tes noms ?

    Citation Envoyé par xavier1977
    Ma DB est sur MySQL.
    Par contre, je ne comprends pas ta deuxième question. C'est quoi une Foreign Key ?
    Une FK est une contrainte d'intégrité, qui te permettra d'assurer la cohérence de tes données. Dans ce cas précis, tu ne pourrais pas, avec une FK, renseigner le champ PLAYER_STAT.club avec une valeur qui n'existe pas dans Clubs.Id

    Si tu veux appronfondir ce point assez utile en SQL, tu peux aller jeter un oeil sur les tutos SQL.
    Ex : Tuto Merise
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    OK merci.

    Oui je visualise bien les enregistrements du champs NAME.

Discussions similaires

  1. [CakePHP] Problème affichage données d'une jointure
    Par faust-arp dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 13/04/2015, 15h26
  2. [Débutant] Problème affichage form suite insertion Datagrid view (connection BDD Access)
    Par Christian8021 dans le forum VB.NET
    Réponses: 2
    Dernier message: 02/09/2014, 15h53
  3. [PrestaShop] problème affichage photos et panier suite maj
    Par foffoi dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 21/08/2014, 16h49
  4. VB.NET Problème affichage Label suite a Invoke
    Par maxSour dans le forum Développement Windows
    Réponses: 1
    Dernier message: 22/05/2013, 14h27
  5. problème d'affichage suite a une structure
    Par clampin dans le forum Débuter
    Réponses: 4
    Dernier message: 26/12/2007, 18h00

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