select 
    *
from
    (select
        t1.uid,
        'activity1' as activity
    from
        exam_record t1
    group by
        t1.uid
    having 
        min(t1.score) >= 85
    union all
    select
        t3.uid,
        'activity2' as activity
    from
        examination_info as t2,
        exam_record as t3
    where
        t3.exam_id = t2.exam_id
        and year(t3.submit_time) = 2021
        and t3.score > 80
        and t2.difficulty = 'hard'
        and minute(timediff(submit_time,start_time)) < (t2.duration/2)
    group by
        t3.uid) t
order by
    uid