Изглежда, че вашите 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
Имайте предвид, че използвах подзаявка за ред, за да създам таблица за всички стаи. На практика можете да създадете действителна таблица в Workbench, съдържаща тази информация.
Демо тук: