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: