Parece que seus
Rooms
tabela contém apenas dados para ocupações ativas. Isso faz sentido de várias maneiras, porque você não deseja armazenar informações sobre pessoas que não estão realmente ocupando uma sala. Mas é um desafio gerar o conjunto de resultados desejado, porque as salas ausentes não estão presentes em Rooms
. Uma opção aqui é a abordagem "tabela de calendário". Você pode
LEFT JOIN
uma tabela contendo todos os quartos para seus Rooms
atuais tabela e, em seguida, rotule os ocupantes ausentes 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
Observe que usei uma subconsulta de linha para criar uma tabela para todas as salas. Na prática, você pode criar uma tabela real no Workbench contendo essas informações.
Demonstração aqui: