Tôi đã thử nhiều cách khác nhau để giải quyết vấn đề này từ diễn đàn này và từ nhiều người khác. Tôi dường như không thể tìm ra giải pháp cho vấn đề này hoặc bất kỳ tài liệu nào sẽ cho tôi một câu trả lời thẳng.MySQL: Cách kết hợp nhiều truy vấn SELECT, sử dụng các tiêu chí WHERE khác nhau trên cùng một bảng?
Tôi tự hỏi liệu bạn có thể xem nó cho tôi không.
Cảm ơn
CÁC VẤN ĐỀ:
Tôi đã có một cơ sở dữ liệu với các bảng sau participant_scores giải đấu vòng
Tôi hiện đang có khả năng hiển thị điểm số của một vòng duy nhất , một vòng tại một thời điểm ... đó là chính xác như thế nào tôi muốn nó. Nhưng tôi cũng muốn hiển thị điểm số mà mỗi người tham gia nhận được cho tất cả các vòng. Cho phép nói rằng chúng tôi có 2 vòng. Tôi muốn đầu ra trên màn hình kết quả của tôi để tìm một cái gì đó như thế này:
Currently viewing league 20, Round 1
of 2:
User Name | Score | Total Score
Tom | 10 | 200
James | 50 | 300
tên người dùng - điểm tên của người tham gia = số điểm cho tổng số điểm vòng hiện nay = tất cả các điểm tròn cho giải đấu này vào với nhau.
Truy vấn Mysql của tôi ở bên dưới. Xin lỗi vì sự lộn xộn của nó, tôi đã viết lại nó khoảng 100 lần và cách hiện tại này là cách duy nhất hoạt động hoàn toàn.
>> 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
Xin chào, Cảm ơn bạn đã trả lời sâu sắc. Tôi phải cho bạn biết rằng tôi là một người mới bắt đầu và tất cả điều này là thử và sai cho tôi. Tôi đang sử dụng một chương trình để giúp tôi xác định lỗi trên mã của mình, nhưng cho đến nay tôi không thể làm cho tập lệnh của tôi chạy với các thay đổi được đề xuất của bạn. Tôi phải nhập sai. Nó sẽ không cho phép tôi đăng lại mã của mình ở đây. Tôi chỉ còn 240 ký tự ... Tôi sẽ đặt nó vào một câu trả lời bên dưới. Cảm ơn! – Tom
Ngoài ra tôi muốn lưu ý rằng những người tham gia có thể là thành viên của nhiều giải đấu. Vì vậy, chúng tôi có thể phải cố gắng đưa vào một số mã để chỉ chọn những người tham gia là một phần của giải đấu này. - Tôi có thể xây dựng kịch bản đó nếu bạn có thể cho tôi một chân với nó. Cảm ơn bạn lần nữa !! – Tom