Bạn phải tham gia bảng người dùng hai lần vì bạn đang khớp nó cho cả tên thành viên và tên người giám sát. Tôi cũng đã sử dụng LEFT JOIN
bởi vì đôi khi lý do không có giá trị nhưng bạn vẫn muốn kéo các bản ghi từ các bảng khác.
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