Aller au contenu

Sujets conseillés

Posté

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 :)

Posté

Un truc dans le style :

SELECT partie_nom,joueur_nom,score FROM parties P
LEFT 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.

Posté

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 :)

Posté
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...

Posté

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 ? :D

Posté (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é par pluriels

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...