Zdá se, že vaše Rooms tabulka obsahuje pouze údaje za aktivní obsazenost. To dává smysl v mnoha ohledech, protože nechcete ukládat informace o lidech, kteří skutečně neobývají místnost. Vygenerování požadované sady výsledků však představuje problém, protože chybějící místnosti nejsou v Rooms .
Jednou z možností je přístup „kalendářní tabulky“. Můžete se LEFT JOIN tabulku obsahující všechny místnosti k vašim aktuálním Rooms tabulku a poté označte chybějící obyvatele jako 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
Všimněte si, že jsem použil linkový poddotaz k vytvoření tabulky pro všechny místnosti. V praxi můžete vytvořit skutečnou tabulku ve Workbench obsahující tyto informace.
Ukázka zde: