[mysql]requête jointure sur 3 tables et une clé de liaison

Résolu
Sedilbur Messages postés 19 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 14 juillet 2006 - 9 juil. 2006 à 23:15
Sedilbur Messages postés 19 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 14 juillet 2006 - 12 juil. 2006 à 22:02
Bonjour à tous,
Je viens aujourd'hui à vous pour vous demander de l'aide car je bloque au niveau d'une rêquete SQL.

Je vous expose la situation pour mieux vous expliquer mon problème

J'ai 3 TABLES: (je vous épargne les types etc... et je vais à l'essentiel)
<li>table1 stats1> 3 champs ('rank', 'point', 'player')</li><li>table2 =stat2 => 3 champs ('rank', 'point', 'player')</li><li>table3 = stat3 => 3 champs ('rank', 'point', 'player')</li>La jointure doit être faite sur le champ player. les champs rank et point des 3 tables sont bien entendu différentes...

Ce que je veux:
Il faut qu'en une requête, je puisse récupérer le contenu des champs rank et point de chacunes des 3 tables grâce à la clée player. Alors déjà, je sais que je peux faire ça avec 3 requêtes différentes, mais c'est justement ce que je veux éviter. Il faut dire que j'ai toujours opté pour cette solution dans le passée...c'est pourquoi, aujourd'hui j'aimerais changer mes habitudes  si bien entendu, ce que je demande est possible (mais je pense bien que oui :p)

Les cas possibles:
<ol><li>Un joueur peut se retrouver dans les 3 tables, comme il pourrait se retrouver dans aucunes des 3 tables.</li><li>Un joueur peut se retrouver sur  1, voir 2 tables en même temps.
</li></ol>Voilà, je pense que c'est clair...celà dit, si vous assez des questions n'hésitez pas à me les poser. Il serait bien également que vous expliquiez un peu votre requête...(histoire que je copie pas bêtement quoi )

Mon problème:
Mon problème est simple, je n'arrive pas à réunir les 2 cas...en effet, après de multiples tests: je n'arrive à récupérer les contenus voulus que si et seulement si, le joueur se retrouve dans chacunes des 3 tables.

Voilà à quoi je suis arrivé:

SELECT f.rank as rank_fleet, f.points as points_fleet, p.rank as rank_points, p.points as points_pointq, r.rank as rank_research, r.points as points_research
    FROM stat1 as f, stat2 as p, stat3 as r
    WHERE f.player = 'test'

Bon je sais très bien qu'avec cette requête je suis complètement à l'Ouest mais au moins, j'ai essayé et je dois dire que je n'ai jamais été doué pour ça (d'où mon penchant pour la solution plusieurs requêtes )...

21 réponses

Sedilbur Messages postés 19 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 14 juillet 2006
12 juil. 2006 à 22:02
C'est pas grave lol...j'ai également suivi ton conseil et j'ai été posté sur le forum SQL

De mon côté je vais encore essayé de trouver mais j'ai peu d'espoir me consernant XD

...
0
Rejoignez-nous