SELECT usr.id,
count(DISTINCT sol.id) as 'Asked',
count(DISTINCT ans.id) as 'Answered',
count(DISTINCT case ans.accepted when 1 then ans.id end) as 'Accepted'
FROM tbl_users usr
LEFT JOIN tbl_solutions sol on sol.authorID = usr.id
LEFT JOIN tbl_solution_answers ans on ans.authorID = usr.id
group by usr.id, sol.authorID, ans.authorID
После стольких перестановок count(DISTINCT case ans.accepted when 1 then ans.id end) as 'Accepted'
, кажется, работает.Теперь, если authorID
в tbl_solution_answers
имеет 8 строк, все они будут возвращены как Answered
, и если, скажем, 3 из них Accepted
, тогда 3 возвращается как Accepted
.