Você precisa ingressar na tabela de usuários duas vezes porque está fazendo a correspondência tanto para o nome do membro quanto para o nome do supervisor. Eu também usei
LEFT JOIN
porque às vezes o motivo não tem um valor, mas você ainda quer puxar os registros das outras tabelas. 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