Próbowałem rozwiązać na wiele sposobów ten problem z tego forum i wielu innych. Nie mogę znaleźć rozwiązania tego problemu ani żadnej dokumentacji, która da mi prostą odpowiedź.MySQL: Jak połączyć wiele zapytań SELECT, używając różnych kryteriów WHERE w tej samej tabeli?
Zastanawiałem się, czy mógłbyś mi na to spojrzeć.
Dzięki
PROBLEM:
Mam bazę danych z poniższych tabelach participant_scores lig rund
Obecnie jestem w stanie wyświetlić wyniki pojedynczej rundzie , jedna runda na raz ... dokładnie tak, jak tego chcę. Ale chcę również wyświetlić wynik, jaki każdy uczestnik otrzymał dla wszystkich rund. Powiedzmy, że mamy 2 rundy. Chcę wyjście na moim ekranie wyników wyglądać mniej więcej tak:
Currently viewing league 20, Round 1
of 2:
User Name | Score | Total Score
Tom | 10 | 200
James | 50 | 300
Username - wynik uczestnika nazwa = wynik ten bieżącej rundy całkowity wynik = wszystkie wyniki rundy na to liga dodawanych razem.
Moje zapytanie Mysql znajduje się poniżej. Przepraszam za tę nieprzyzwoitość, przepisałem ją około 100 razy i ta aktualna metoda jest jedynym sposobem, który działa w pełni.
>> 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
Witam, dziękuję za odpowiedź w głębi. Muszę cię poinformować, że jestem początkującym i wszystko to jest dla mnie próbą i błędem. Używam programu, który pomoże mi zidentyfikować błędy w moim kodzie, ale do tej pory nie udało mi się uruchomić skryptu z sugerowanymi zmianami. Muszę ich źle wprowadzać. To nie pozwoli mi ponownie opublikować mojego kodu tutaj. Zostało mi tylko 240 znaków ... Odpowiem poniżej. Dzięki! – Tom
Chciałbym również zauważyć, że uczestnicy mogą należeć do wielu lig. Być może będziemy musieli spróbować wprowadzić kod, aby wybrać tylko uczestników, którzy są częścią tej ligi. - Mogę zbudować ten skrypt, jeśli mógłbyś mi z tym pomóc. Jeszcze raz dziękuję! – Tom