आपको जो परिणाम मिल रहा है वह सही है क्योंकि किसी विशिष्ट दिन के नाम पर कोई रिकॉर्ड नहीं है। चूंकि आप सभी दिन के नाम प्राप्त करना चाहते हैं, आपको दिन का पूरा सेट प्रोजेक्ट करना होगा (एक सबक्वायरी के अंदर UNION का उपयोग करके ) और अपनी मौजूदा क्वेरी के साथ इसमें शामिल हों।
SELECT a.day_name,
COALESCE(b.totalCount, 0) totalCount
FROM
(
SELECT 'Sunday' day_name, 1 ordby UNION ALL
SELECT 'Monday' day_name, 2 ordby UNION ALL
SELECT 'Tuesday' day_name, 3 ordby UNION ALL
SELECT 'Wednesday' day_name, 4 ordby UNION ALL
SELECT 'Thursday' day_name, 5 ordby UNION ALL
SELECT 'Friday' day_name, 6 ordby UNION ALL
SELECT 'Saturday' day_name, 7 ordby
) a
LEFT JOIN
(
SELECT DAYNAME(timestamp) day_name,
COUNT(*) totalCount
FROM `emp_info`
WHERE DATE(timestamp ) > DATE_SUB(CURDATE( ) , INTERVAL 1 WEEK )
GROUP BY DAYNAME(timestamp)
) b ON a.day_name = b.day_name
ORDER BY a.ordby