MarvinLeRouge Posté 24 Août 2007 Posté 24 Août 2007 Salut, C'est surement tout bête comme jointure, mais je n'arrive pas à la trouver : J'ai 3 tables : joueurs, parties et scores La table joueurs joueur_id : l'id joueur_nom La table parties partie_id : l'id partie_numero : un nombre désignant la partie de façon plus conviviale (le nom de la partie en quelque sorte) La table scores score_id : l'id partie_id : l'id de la partie dans laquelle ce score a été obtenu joueur_id : l'id du joueur qui a obtenu ce score score : le score en question Ces tables contiennent des données correspondant à un tournoi dans lequel : de nouveaux joueurs peuvent s'inscrire avant toute partie un joueur ne participe pas forcément à toutes les parties une partie ne contient donc pas nécessairement TOUS les joueurs connus Je veux simplement récupérer, pour un joueur donné, en donnée 1 : la liste de TOUTES les parties (qu'il y ait participé ou pas) en donnée 2 : son score à la partie en question, ou NULL s'il n'y était pas Voilà, la requète est probablement toute bête, mais là je pédale dans la semoule. Merci
iNCiTE Web Posté 25 Août 2007 Posté 25 Août 2007 Un truc dans le style : SELECT partie_nom,joueur_nom,score FROM parties PLEFT JOIN scores S ON S.partie_id = P.partie_id LEFT JOIN joueurs J ON J.joueur_id = S.joueur_id WHERE S.joueur_id = ".$num_joueur." OR s.score IS NULL Voilà donc une base pour te sortir de la semoule, à adapter et vérifier que tes conditions sont bien remplies. Et $num_joueur étant la variable du numéro de joueur.
MarvinLeRouge Posté 28 Août 2007 Auteur Posté 28 Août 2007 Bon bah ça veut pas marcher. Je me suis débrouillé en créant des tableaux de la bonne taille, pré-remplis avec la valeur correspondant à "enregistrement absent" (oui je sais c'est moche). M'est avis qu'il y a une histoire d'ordre de jointure là-dedans, je vais fouiller ça un peu plus dès que j'aurais une minute. Merci
iNCiTE Web Posté 28 Août 2007 Posté 28 Août 2007 Bon bah ça veut pas marcher. N'étant pas devin et ne retrouvant pas ma boule de cristal, quelle est l'erreur renvoyée ou le problème rencontré ? ça m'aiderait...
MarvinLeRouge Posté 29 Août 2007 Auteur Posté 29 Août 2007 En fait, je ne récupère pas les bons sets de données. Je farfouille là-dedans, et je te dirai ce qu'il en est. N.B. : Si tu n'es pas devin, comment se fait-il que tu aies une boule de cristal ?
iNCiTE Web Posté 29 Août 2007 Posté 29 Août 2007 Bon ben je ne peux pas trop t'aider alors si tu m'en dis pas plus... Quant à la boule de cristal ben je l'ai achetée sur ebay (à un mage, il s'appelle Ordome)
pluriels Posté 29 Août 2007 Posté 29 Août 2007 (modifié) SELECT partie_nom,joueur_nom,score FROM parties P LEFT JOIN scores S ON P.partie_id = S.partie_id LEFT JOIN joueurs J ON J.joueur_id = S.joueur_id WHERE J.id = ".$num_joueur." Modifié 29 Août 2007 par pluriels
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant