あなたのRooms
のようです テーブルには、アクティブな占有のデータのみが含まれます。これは多くの点で理にかなっています。なぜなら、実際には部屋を占有していない人に関する情報を保存したくないからです。ただし、不足している部屋はRooms
に存在しないため、目的の結果セットを生成するのは困難です。 。
ここでの1つのオプションは、「カレンダーテーブル」アプローチです。 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で作成できます。
デモはこちら: