Accueil > Forum > > > > [mysql]requête jointure sur 3 tables et une clé de liaison
[mysql]requête jointure sur 3 tables et une clé de liaison
dimanche 9 juillet 2006 à 23:15:15 |
[mysql]requête jointure sur 3 tables et une clé de liaison

Sedilbur
|
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) - table1 = stats1 => 3 champs ('rank', 'point', 'player')
- table2 =stat2 => 3 champs ('rank', 'point', 'player')
- table3 = stat3 => 3 champs ('rank', 'point', 'player')
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:
- Un joueur peut se retrouver dans les 3 tables, comme il pourrait se retrouver dans aucunes des 3 tables.
- Un joueur peut se retrouver sur 1, voir 2 tables en même temps.
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  )...
|
|
lundi 10 juillet 2006 à 08:49:20 |
Re : [mysql]requête jointure sur 3 tables et une clé de liaison

3xodius55
|
salut, ta requête ne me parait pas fausse à première vue, il faudrait juste que tu fasses des jointures entre tes tables, du style: and f.joueur=p.joueur and f.joueur=r.joueur; J'attends que tu me dises si ça te va ou pas  Tchao
|
|
lundi 10 juillet 2006 à 09:17:31 |
Re : [mysql]requête jointure sur 3 tables et une clé de liaison

Paladin2107
|
Slt
T n'as pas de 'AS' au niveau du from pour renommer tes tables.
Voici la solution, regarde si elle te conviens peut etre que tu as besoin de jointure comme te la montré la personne précédente.
Si tu souhaite renommer tes champs tu peux remettre ta syntaxe
Select S1.rank,S1.point,S1.player,S2.rank,S2.point,S2.player,S3.rank,S3.point,S3.player
From stats1 S1 ,stats2 S2 ,stats3 S3
Where f.player = 'test';
|
|
lundi 10 juillet 2006 à 09:22:37 |
Re : [mysql]requête jointure sur 3 tables et une clé de liaison

3xodius55
|
Ah bon, il ne faut pas de AS ? J'étais persuadé qu'il était optionnel mais pas faux... On en apprend tous les jours ! 
|
|
lundi 10 juillet 2006 à 10:59:24 |
Re : [mysql]requête jointure sur 3 tables et une clé de liaison

Sedilbur
|
Très bien je vais tester celà le plus vite possible et je vous tiens au courant...
|
|
lundi 10 juillet 2006 à 11:52:05 |
Re : [mysql]requête jointure sur 3 tables et une clé de liaison

malalam
|
Hello,
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' AND f.player = p.player AND p.player = r.player
|
|
lundi 10 juillet 2006 à 13:20:41 |
Re : [mysql]requête jointure sur 3 tables et une clé de liaison

Sedilbur
|
Voilà j'ai fais des tests...des différentes requêtes que vous avez proposé et donc...
Select S1.rank,S1.point,S1.player,S2.rank,S2.point,S2.player,S3.rank,S3.point,S3.player From stats1 S1 ,stats2 S2 ,stats3 S3 Where f.player = 'test';
Le problème est que cette requête me retourne les différentes stats seulement si le joueur est dans les 3 tables...si jamais il est seulement dans une seule, la requête me retourne rien
WHERE f.player = 'test' AND f.player = p.player AND p.player = r.player
Même problème, la requête me retourne bien les statistiques du joueurs mais seulement si ce dernier est dans les 3 tables.
J'avais essayé celà mais encore une fois ça m'a pas fonctionné
WHERE f.player = 'test' or f.player = 'test' or p.player = 'test'
Le problème est qu'il récupère bien les stats du joueur si celui-ci est dans une seule table mais il prend également celui d'un autre. exemple: test est dans les 3 tables moi est dans une seule table
La requête me renvoie les résultats de moi de la table ou il est + les résultats de test dans les deux autres tables
Voilà, j'espère que vous pourez m'aider parce que là, je commence un petit peu à désespérer...
...
|
|
lundi 10 juillet 2006 à 14:00:20 |
Re : [mysql]requête jointure sur 3 tables et une clé de liaison

malalam
|
Tu as quelle version de mysql ?
|
|
lundi 10 juillet 2006 à 14:27:30 |
Re : [mysql]requête jointure sur 3 tables et une clé de liaison

malalam
|
Parce que j'avais mal lu ton bin's. Bref essaye :
SELECTrank, point, player FROM stats1 NATURALLEFTJOIN stats2 NATURALLEFTJOIN stats3 WHERE player ='test'
|
|
lundi 10 juillet 2006 à 15:02:38 |
Re : [mysql]requête jointure sur 3 tables et une clé de liaison

Paladin2107
|
SELECT rank, point, player
FROM stats1
UNION
SELECT rank, point, player
FROM stats2
UNION
SELECT rank, point, player
FROM stats3
|
|
Cette discussion est classée dans : points, requête, rank, tables, player
Répondre à ce message
Sujets en rapport avec ce message
requête de non concordance avec jointure 3 tables [ par dubitoph ]
ChristopheHé oui, je suis toujours là avec mes angoisses pour mon mémoire.J'ai une base de données MySql qui contient, en autres, une table "interimai
[mysql] requête sur plusieurs tables [ par eax ]
bonjour à tous, je me posais une question en mysql : lorsque je fais une requête sur 2 tables, comment faire pour avoir les enregistrements n'ayant pa
Amélioration requête SQL [ par nounours21_6 ]
Bonjour tout le monde,j'ai un petit soucis de requête SQL,j'ai une table de membres que je mets à jours régulièrement afin de créer un graphique d'évo
interroger plusieurs tables avec une seule requête [ par bruno3591 ]
Bonsoir, Est-il possible de faire une seule requête pour interroger plusieurs tables sans avoir de clé étrangère ? Je voudrais faire au moins 3 sort
Requête Multi-tables. Erreur d'ambiguité. [ par xeroxiss ]
Bonjour à tous, J'ai un petit soucis avec une requête. Je tourne en rond Je voudrais faire un SELECT sur 3 tables différentes avec un WHERE <font colo
requête php sur deux bases [ par bl75013 ]
bonsoir, je débute, merci de votre compréhension j'ai deux tables je souhaite faire une requête sur ces 2 tables si dans une de ces tables aucuns rens
Calcul d'un rang avec 2 tables [ par Alpha911 ]
Bonjour, Je me creuse la tête depuis hier et rien n'en sort ... j'ai 2 tables comme ce qui suit : *********** ************ * JOUEUR * * POI
PDO et une erreur de requête [ par fabienfs ]
Hello, M'initiant actuellement à PDO avec MySQL, je me pose la question suivante : y a t'il une gestion des erreur en PDO comme avec mysql_query ? Lo
petit soucis avec requête sql [ par tif27940 ]
Bonjour, voici ma requête: SELECT * FROM personnes WHERE ville = 'paris' AND nom LIKE 'gauthier' OR pnom LIKE 'gauthier' ORDER BY ville, nom, pno
problème de requète pour afficher des informations sur les enregistrés [ par msi079 ]
salut . j'ai une base de donnée que j'ai nommée autoecole et deux tables candidat et payement . je veux afficher des information issu des deux tables
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Forum
CHAMPS TIMECHAMPS TIME par vargas
Cliquez pour lire la suite par vargas
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|