次のような構造の 2 つのテーブルがあります。
ルームリスト:
-room (unique)
-totalDesks
ユーザーリスト:
-room (has duplicates)
-deskOwned
以下を吐き出すSQLステートメントが必要です。
room
totalDesks
desksUsed (COUNT(DISTINCT userlist.desk))
desksOpen (totalDesks-(COUNT(DISTINCT userlist.desk)))
私はこれまでのところこれを持っています:
SELECT
DISTINCT roomList.room, userlist.room, roomList.totalDesks,
COUNT(DISTINCT userlist.desk) AS desksUsed,
roomlist.totalDesks - COUNT(DISTINCT userlist.desk) AS desksOpen
FROM
roomlist, userlist
WHERE
roomlist.room = userlist.room
問題は、現在すべての部屋にユーザーがいるわけではないことです。部屋 A、B、C、および D があり、A、B、および C の人のレコードのみがある場合、部屋 D は結果に含まれません。
userlist にその部屋のレコードが存在しない場合でも、roomlist からの部屋に関する結果を取得するにはどうすればよいですか?