Devi unirti alla tabella utente due volte perché la stai abbinando sia per il nome del membro che per il nome del supervisore. Ho anche usato LEFT JOIN
perché a volte il motivo non ha un valore ma vuoi comunque estrarre i record dalle altre tabelle.
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