Трябва да се присъедините към потребителската таблица два пъти, защото я съпоставяте както за името на члена, така и за името на надзорника. Използвах също LEFT JOIN
защото понякога причината няма стойност, но все пак искате да изтеглите записите от другите таблици.
SELECT u1.userid, a.date, u1.name, d.reason, u2.name AS supervisor
FROM user u1
LEFT JOIN attendance a ON u1.userid = a.member
LEFT JOIN detail d ON u1.userid = d.userid
LEFT JOIN user u2 ON a.supervisor = u2.userid
WHERE d.attendance = 0