SELECT a.device_id, IFNULL(b.question_cnt,0) question_cnt FROM user_profile a LEFT JOIN ( SELECT t1.device_id,COUNT(t2.question_id) question_cnt FROM user_profile t1 LEFT JOIN question_practice_detail t2 ON t1.device_id = t2.device_id LEFT JOIN question_detail t3 ON t2.question_id = t3.question_id WHERE t3.difficult_level = 'hard' GROUP BY t1.device_id ) b ON a.device_id = b.device_id GROUP BY a.device_id order by question_cnt