Tiene que unirse a la tabla de usuarios dos veces porque está haciendo coincidir tanto el nombre del miembro como el nombre del supervisor. También usé LEFT JOIN
porque a veces el motivo no tiene un valor pero aún desea extraer los registros de las otras tablas.
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