J'ai essayé de nombreuses façons de résoudre ce problème à partir de ce forum et de beaucoup d'autres. Je n'arrive pas à trouver une solution à ce problème ou une documentation qui me donnera une réponse directe.MySQL: Comment combiner plusieurs requêtes SELECT, en utilisant différents critères WHERE sur la même table?
Je me demandais si vous pouviez y jeter un coup d'oeil.
Merci
PROBLÈME:
J'ai une base de données avec les tableaux suivants participant_scores ligues tours
Je suis actuellement en mesure d'afficher les scores d'un seul tour , un tour à la fois ... ce qui est exactement ce que je veux. Mais je veux aussi afficher le score que chaque participant a obtenu pour tous les tours. Disons que nous avons 2 tours. Je veux la sortie sur mon écran de résultats pour ressembler à ceci:
Currently viewing league 20, Round 1
of 2:
User Name | Score | Total Score
Tom | 10 | 200
James | 50 | 300
nom d'utilisateur - le nom du participant score = le score de ce tour en cours score total = tous les scores ronds pour cette ligue totalisées.
Ma requête mysql est ci-dessous. Toutes mes excuses pour la confusion, je l'ai réécrit environ 100 fois et cette façon actuelle est la seule qui fonctionne pleinement.
>> league_participants_query (mysql)
# FIELDS
SELECT
participants.participant_id, # ID - used for functions
participants.participant_name, # NAME
participants.participant_gender, # Participant info
classes.class_name, # Class name
schools.school_name, # School name
participant_scores.participant_score, # Participant score
participant_scores.participant_score_id
# TABLES
FROM participant_scores, participants, classes, league_schools, schools, leagues, rounds
# filter leagues
WHERE leagues.league_id = 51
AND rounds.league_id = 51 # the current league we are viewing
AND rounds.round_id = 25 # the current round of the league we are viewing
# filter league schools
AND participant_scores.round_id = 25 # the current round of the league we are viewing
# filter schools allowed
AND league_schools.league_id = 51 # the current league we are viewing
# Filter schools
AND schools.school_id = league_schools.school_id
# Filter classes
AND classes.school_id = schools.school_id
AND classes.year_group_id = leagues.year_group_id
# Filter participants
AND participants.class_id = classes.class_id
# Filter participant_scores
AND participant_scores.participant_id = participants.participant_id
#Grouping
GROUP BY participants.participant_id
Bonjour, Merci pour votre réponse en profondeur. Je dois vous faire savoir que je suis un débutant et tout cela est un essai et une erreur pour moi. J'utilise un programme pour m'aider à identifier les erreurs sur mon code, mais jusqu'à présent, je n'ai pas réussi à faire fonctionner mon script avec les changements que vous avez suggérés. Je dois entrer mal. Il ne me laissera pas poster mon code ici encore. Il ne me reste que 240 caractères ... Je vais le mettre dans une réponse ci-dessous. Merci! – Tom
Aussi, j'aimerais noter que les participants peuvent être membres de plusieurs ligues. Il se peut donc que nous devions essayer de mettre du code pour ne choisir que les participants qui font partie de cette ligue. - Je peux construire ce script si vous pouvez me donner une longueur d'avance. Merci encore !! – Tom