我正在尝试在一个查询中加入 2 个 sql 查询。
第一个获取每家酒店的房间数。 第二个获取酒店入住客人的数量。 我正在尝试获取每家酒店的入住率。
SELECT hotel_id, count(room_id)
FROM room
group by room.hotel_id
SELECT h.hotel_id, count(k.room_id)
FROM room_reservation as kr , room as k , hotel as h
where kr.room_id = k.room_id and k.hotel_id = h.hotel_id
group by k.hotel_id
我该怎么做?
最佳答案
select aux.hotel_id, ((coalesce(aux2.total, 0)*1.0)/aux.total)*100 as 'ocupancy rate'
from (SELECT hotel_id, count(room_id) as 'total'
FROM room
group by room.hotel_id) aux
LEFT OUTER JOIN (SELECT h.hotel_id, COUNT(k.room_id) as 'total'
FROM room_reservation as kr
INNER JOIN room as k ON (kr.room_id = k.room_id)
INNER JOIN hotel as h ON (k.hotel_id = h.hotel_id)
GROUP BY k.hotel_id) aux2 on aux.hotel_id = aux2.hotel_id
关于mysql - 在 MySQL 中加入 2 个 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11160140/