Wygląda na to, że Twoje Rooms
tabela zawiera tylko dane dla aktywnych obłożeń. Ma to sens pod wieloma względami, ponieważ nie chcesz przechowywać informacji o osobach, które tak naprawdę nie zajmują pokoju. Jednak wygenerowanie pożądanego zestawu wyników stanowi wyzwanie, ponieważ brakujące pokoje nie są obecne w Rooms
.
Jedną z opcji jest tutaj podejście „tabela kalendarza”. Możesz LEFT JOIN
tabela zawierająca wszystkie pokoje do Twoich aktualnych Rooms
tabeli, a następnie oznacz brakujących osób 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
Zauważ, że użyłem podzapytania wiersza, aby utworzyć tabelę dla wszystkich pomieszczeń. W praktyce możesz utworzyć w Workbenchu rzeczywistą tabelę zawierającą te informacje.
Demo tutaj: