select a.device_id ,b.university ,count(a.question_id) as question_cnt ,sum(if(a.result = 'right', 1, 0)) as right_question_cnt from question_practice_detail a left join user_profile b on a.device_id = b.device_id where university = '复旦大学' and left(a.date, 7) = '2021-08' group by a.device_id union all select b.device_id ,b.university ,0 as question_cnt ,0 as right_question_cnt from question_practice_detail a right join user_profile b on a.device_id = b.device_id where university = '复旦大学' and a.device_id is null
一个b站up主的思路