mysql - 在 MySQL 中加入 2 个 sql 查询

标签 mysql sql

我正在尝试在一个查询中加入 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/

相关文章:

.net - 如何在 SQL 中调用标准 .NET 程序集

sql - 在 BigQuery 中使用所有字符串列的限制

mysql - SQL-根据条件从不同表中选择不同字段

c# - 使用 SqlConnection 打开 DataReader 错误

php - 公司 vs 员工 ID 困境

php - 使用 PHP 脚本将 CSV 导入 MySQL

php - 在 Laravel/Lumen Eloquent 中获取两个日期之间的所有年份

sql - 在 PostgreSQL 中查找最大/最小对

php - 多选字段仅提交最后选择的选项

php - 在简单的小项目中使用的最好的 mysql php 类是什么?