He estado intentando muchas formas diferentes de resolver este problema desde este foro y desde muchos otros. Parece que no puedo encontrar una solución a este problema o cualquier documentación que me dé una respuesta directa.MySQL: ¿Cómo combinar múltiples consultas SELECT, usando diferentes criterios WHERE en la misma tabla?
Me preguntaba si podría echarle un vistazo.
Gracias
EL PROBLEMA:
Tengo una base de datos con las siguientes tablas participant_scores ligas rondas
Actualmente soy capaz de mostrar los resultados de una sola ronda , una ronda a la vez ... que es exactamente como lo quiero. Pero también quiero mostrar el puntaje que obtuvo cada participante en todas las rondas. Digamos que tenemos 2 rondas. Quiero la salida en mi pantalla de resultados para buscar algo como esto:
Currently viewing league 20, Round 1
of 2:
User Name | Score | Total Score
Tom | 10 | 200
James | 50 | 300
nombre de usuario - puntuados Nombre del participante = la puntuación para esta puntuación actual ronda Total = todas las puntuaciones redondas de esta Liga sumarse.
Mi consulta Mysql está por debajo. Disculpas por su desorden, lo reescribí unas 100 veces y esta forma actual es la única que funciona completamente.
>> 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
Hola, gracias por su respuesta en profundidad. Tengo que decirte que soy un principiante y todo esto es prueba y error para mí. Estoy usando un programa para ayudarme a identificar errores en mi código, pero hasta ahora no he podido hacer que mi script se ejecute con los cambios sugeridos. Debo estar ingresándolos mal. No me deja publicar mi código aquí de nuevo. Solo me quedan 240 caracteres ... Lo pondré en una respuesta a continuación. Gracias! – Tom
También me gustaría señalar que los participantes pueden ser miembros de muchas ligas. Por lo tanto, debemos intentar introducir algún código para elegir solo a los participantes que forman parte de esta liga. - Puedo construir ese guión si pudieras ayudarme. ¡Gracias de nuevo! – Tom