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 :

Jointure 3 tables


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 50
    Points : 66
    Points
    66
    Par défaut Jointure 3 tables
    Bonjours à tous ! ^^
    J'me prends la tête avec une requête depuis hier.

    Voila mes tables:
    1. islands: id, xpos, ypos, type, free
    2: towns: id, player_id, name, xpos, ypos, pos, points
    3: players: id, name, alliance_id, points, rank, towns

    J'ai mis des couleurs pour les concordances entre les tables.

    A l'aide de 2 variables php
    $xpos et $ypos représentants 'islands.xpos' et 'islands.ypos', j'aimerais récupérer tous les 'alliance_id' correspondants dans la table 'players'

    En fait, dans la table 'islands', on a la position x et y de l'ile sur la carte.
    On les retrouve dans la table 'towns' ou on récupère le 'playerid' d'un joueur pour aller récupérer les 'alliance_id'

    Dois-je décomposer la requête ?

    Celle-ci devrait me donner un résultat, mais elle ne m'en donne pas et n'affiche aucun message d'erreur ! :s
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT players.alliance_id
    FROM islands,towns,players
    WHERE islands.xpos=600 and islands.ypos=552
    AND islands.xpos=towns.xpos and islands.ypos=towns.xpos
    AND towns.player_id=players.id

  2. #2
    Membre du Club
    Inscrit en
    Octobre 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 50
    Points : 66
    Points
    66
    Par défaut
    C'est bon, je suis un imbécile ! ^^
    Je savais qu'j'me prenait la tête pour rien !
    y'avait pas besoin d'utiliser les 3 tables dans la requete puisque les xpos et ypos des tables islands et towns correspondaient !

    une simple jointure et hop !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT players.alliance_id
    FROM towns, players
    WHERE (towns.xpos = "600"AND towns.ypos = "552")
    AND towns.player_id = players.id

  3. #3
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Salam ; Troy :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT players.alliance_id
    FROM islands,towns,players
    WHERE islands.xpos=600 and islands.ypos=552
    AND islands.xpos=towns.xpos and islands.ypos=towns.xpos
    AND towns.player_id=players.id
    simplement ta requête ci dessus n'est pas optimisée et au passage n'oublie pas la balise

  4. #4
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    redoran a raison... une jointure s'écrit avec l'opérateur JOIN depuis 1992...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

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

Discussions similaires

  1. Jointure de table avec Interbase
    Par ada_b dans le forum InterBase
    Réponses: 21
    Dernier message: 12/05/2010, 19h52
  2. Réponses: 7
    Dernier message: 10/02/2005, 00h13
  3. [FB1.5]Vue avec jointure sur tables ?
    Par Sitting Bull dans le forum SQL
    Réponses: 2
    Dernier message: 07/12/2004, 17h07
  4. jointure sur table et procedure stocké
    Par pram dans le forum SQL
    Réponses: 3
    Dernier message: 18/11/2004, 21h56
  5. requete(jointure 2 tables) qui marche pas
    Par DaxTaz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/06/2004, 17h50

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