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 :

requete ne ramenant pas tout les resultats


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Points : 96
    Points
    96
    Par défaut requete ne ramenant pas tout les resultats
    Bonjour,

    Sur mon site, ont peut voir les jeux d'un membre, ainsi que les personnages qu'il possède, etc.

    Donc, je voudrait afficher toutes les informations des jeux auxquels il joue, ainsi que les informations des personnages reliés. A savoir, un personnage évolue sur un serveur, qui lui correspond a un jeux (plusieurs serveurs pour un jeux), et que l'utilisateur peu jouer a plusieurs jeux.

    Voila un petit bout de ma structure de bdd : en souligner les noms de table, suivit des champs.

    user
    -useID

    user_game
    - usgaUseID
    - usgaGamID

    game
    - gamID
    - gamName

    server
    - serID
    - serGamID

    character
    - chaID
    - chaUseID
    - chaSerID
    - chaName

    Avec une requête du genre, j'obtiens la liste des jeux auquel il joue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT `gamName` 
    FROM `user_game` 
       LEFT OUTER JOIN `game` 
          ON `usgaGamID` = `gamID` 
       LEFT OUTER JOIN `user` 
          ON `useID` = `usgaUseID` 
    WHERE `usgaUseID` = 30 
    ORDER BY `gamName` ASC
    Exemple de résultat désirer :
    -gamNameA chaNameA
    -gamNameA chaNameB
    -gamNameB (aucun personnage)
    -gamNameC (aucun personnage)
    -gamNameD chaNameA
    -gamNameE (aucun personnage)
    ...

    Voila, merci


    Cela dit, comment accéder au détails des personnages également

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Je crains que ce que tu veuilles faire ne ressemble à une requête récursive. Or, MySQL ne sait pas faire ce type de requêtes.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Points : 96
    Points
    96
    Par défaut
    Bonjour,

    Merci bien, en effet commet je ne suis pas un pro de MySql, j'essayais d'obtenir un résultat du genre avec les différents type de jointure, je ne savais pas pour les requêtes récursive et MySQL.

    Il va donc falloir que je fasses en 2 requêtes différentes, ca ne devrait pas poser problème c'est très simple.

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Cette requete vous donne-t-elle ce que vous voulez ? :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT gamName, chaName
    FROM user_game
    INNER JOIN game ON game.gamID = user_game.usgaGamID 
    INNER JOIN Server ON server.serGameID = user_game.usgaGameID
    LEFT OUTER JOIN character ON character.chaSerID = server.serID 
    WHERE user_game.usgaUseID = 30
    ORDER BY gamName, chaName

    Dans la requete que vous postez, je ne comprend pas pourquoi vous mettez une jointure externe entre user_game et game, je suppose que vous avez une contrainte d'intégrité entre ces deux tables ?

    De plus, je ne comprend pas pourquoi vous faites une jointure avec user, cette table ne vous sert a rien dans votre requete...

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

Discussions similaires

  1. Apache ne délivre pas toutes les requetes
    Par kaymak dans le forum Apache
    Réponses: 5
    Dernier message: 09/06/2008, 21h38
  2. IMG_Load ne charge pas toutes les images
    Par v4np13 dans le forum SDL
    Réponses: 7
    Dernier message: 07/04/2007, 22h38
  3. Réponses: 5
    Dernier message: 16/12/2006, 22h29
  4. Réponses: 11
    Dernier message: 04/05/2006, 11h50

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