Det verkar som att dina Rooms
Tabellen innehåller endast data för aktiva beläggningar. Detta är vettigt på många sätt, eftersom du inte vill lagra information om personer som inte riktigt ockuperar ett rum. Men det är en utmaning att skapa din önskade resultatuppsättning, eftersom de saknade rummen inte finns i Rooms
.
Ett alternativ här är "kalendertabell"-metoden. Du kan LEFT JOIN
en tabell som innehåller alla rum till dina nuvarande Rooms
tabell och märk sedan saknade passagerare som 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
Observera att jag använde en linjeunderfråga för att skapa en tabell för alla rum. I praktiken kan du skapa en faktisk tabell i Workbench som innehåller denna information.
Demo här: