Ho provato molti modi diversi per risolvere questo problema da questo forum e da molti altri. Non riesco a trovare una soluzione a questo problema o alcuna documentazione che mi dia una risposta diretta.MySQL: Come combinare più query SELECT, utilizzando diversi criteri WHERE sulla stessa tabella?
Mi chiedevo se potessi dargli un'occhiata.
Grazie
IL PROBLEMA:
Ho un database con le seguenti tabelle participant_scores leghe turni
Sono attualmente in grado di visualizzare i punteggi di un singolo round , un giro alla volta ... che è esattamente come lo voglio. Ma voglio anche mostrare il punteggio ottenuto da ogni partecipante per tutti i round. Diciamo che abbiamo 2 turni. Voglio che l'output sul mio schermo risultati a guardare qualcosa di simile:
Currently viewing league 20, Round 1
of 2:
User Name | Score | Total Score
Tom | 10 | 200
James | 50 | 300
nome utente - del partecipante punteggio nome = il punteggio per questo attuale ciclo punteggio totale = tutte le rotonde punteggi per questo campionato sommati.
La mia domanda Mysql è qui sotto. Mi scuso per il disordine, l'ho riscritto circa 100 volte e questo modo attuale è l'unico modo che funziona pienamente.
>> 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
Ciao, grazie per la tua risposta approfondita. Devo farti sapere che sono un principiante e tutto questo è stato per me prova ed errore. Sto usando un programma per aiutarmi a identificare gli errori sul mio codice, ma finora non sono riuscito a far funzionare il mio script con le modifiche suggerite. Devo entrare in loro sbagliando. Non mi permette di postare di nuovo il mio codice qui. Ho solo 240 caratteri rimasti ... Lo metterò in una risposta qui sotto. Grazie! – Tom
Inoltre, vorrei sottolineare che i partecipanti possono essere membri di molti campionati. Quindi dovremmo provare a inserire un codice per scegliere solo i partecipanti che fanno parte di questo campionato. - Posso costruire quella sceneggiatura se tu potessi darmi un vantaggio. Grazie ancora !! – Tom