ऐसा लगता है कि आपके Rooms
तालिका में केवल सक्रिय व्यवसायों के लिए डेटा होता है। यह कई मायनों में समझ में आता है, क्योंकि आप उन लोगों के बारे में जानकारी संग्रहीत नहीं करना चाहते जो वास्तव में एक कमरे में नहीं हैं। लेकिन यह आपके वांछित परिणाम सेट को उत्पन्न करने के लिए एक चुनौती है, क्योंकि लापता कमरे Rooms
में मौजूद नहीं हैं ।
यहां एक विकल्प "कैलेंडर टेबल" दृष्टिकोण है। आप LEFT JOIN
आपके वर्तमान Rooms
. के सभी कमरों वाली एक तालिका तालिका, और फिर लापता रहने वालों को nobody
. के रूप में लेबल करें ।
SELECT t1.Room,
COALESCE(t2.OccupantName, 'Nobody') AS OccupantName
FROM
(
SELECT "Room 1" AS Room
UNION ALL
SELECT "Room 2"
UNION ALL
SELECT "Room 3"
UNION ALL
SELECT "Room 4"
) AS t1
LEFT JOIN Rooms AS t2
ON t1.Room = t2.Rooms
ध्यान दें कि मैंने सभी कमरों के लिए एक टेबल बनाने के लिए एक लाइन सबक्वेरी का उपयोग किया था। व्यवहार में, आप इस जानकारी से युक्त कार्यक्षेत्र में एक वास्तविक तालिका बना सकते हैं।
यहां डेमो करें: