Parece que sus Rooms
La tabla solo contiene datos de ocupaciones activas. Esto tiene sentido en muchos sentidos, porque no desea almacenar información sobre personas que en realidad no ocupan una habitación. Pero genera un desafío para generar el conjunto de resultados deseado, porque las habitaciones que faltan no están presentes en Rooms
.
Una opción aquí es el enfoque de "tabla de calendario". Puedes LEFT JOIN
una tabla que contiene todas las habitaciones de sus Rooms
actuales mesa y luego etiquete a los ocupantes que faltan como 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
Tenga en cuenta que utilicé una subconsulta de línea para crear una tabla para todas las habitaciones. En la práctica, podría crear una tabla real en Workbench que contenga esta información.
Demostración aquí: