SELECT
uid,
"activity1" activity
FROM
exam_record e1
GROUP BY
uid
HAVING
min(score) >= 85
UNION
SELECT DISTINCT
uid,
"activity2" activity
FROM
exam_record
JOIN examination_info USING (exam_id)
WHERE
difficulty = "hard"
AND TIMESTAMPDIFF(
SECOND,
start_time,
submit_time
) * 2 <= duration * 60
AND score >= 80
ORDER BY
uid ASC
uid,
"activity1" activity
FROM
exam_record e1
GROUP BY
uid
HAVING
min(score) >= 85
UNION
SELECT DISTINCT
uid,
"activity2" activity
FROM
exam_record
JOIN examination_info USING (exam_id)
WHERE
difficulty = "hard"
AND TIMESTAMPDIFF(
SECOND,
start_time,
submit_time
) * 2 <= duration * 60
AND score >= 80
ORDER BY
uid ASC