そのため、情報を検索するのに助けが必要です。部屋に空きがある部屋を探しています。前後のテーブルの写真を追加しました。それが十分な情報であることを願っています:)
質問する
31 次
3 に答える
0
各部屋に何人いるのかを調べることから始めます。
SELECT door_nr
, Count(*) As number_of_occupants
FROM people
GROUP
BY door_nr
次に、このクエリを使用して、rooms
一致する値に基づいてテーブルに結合できdoor_nr
ます。
SELECT rooms.door_nr
, rooms.space As capacity
, room_usage.number_of_occupants
, rooms.space - room_usage.number_of_occupants As free_space
FROM rooms
LEFT
JOIN (
SELECT door_nr
, Count(*) As number_of_occupants
FROM people
GROUP
BY door_nr
) As room_usage
ON room_usage.door_nr = rooms.door_nr
于 2013-11-13T13:09:42.120 に答える
0
SELECT Door_Nr, COUNT(*) FROM People GROUP BY Door_Nr
部屋の人数を教えてくれます。
(My)SQL の基本的な実用知識があれば、残りの部分を理解できるはずですか? それ以外の場合は、具体的な質問をしてください。
于 2013-11-13T13:09:49.760 に答える
0
select r.door_nr,
r.space - sum(p.name is not null) as free
from rooms r
left join people p on p.door_nr = r.door_nr
group by r.door_nr, r.space
having free > 0
SQLFiddle デモ
于 2013-11-13T13:09:55.493 に答える