1

我一直在尝试几个小时来寻找从 2 表中减去乘数行的方法?因为我不断从 mySQL 工作台收到错误。

我有 2 张桌子hotelhotel_stay

我需要得到唯一房间的数量,然后减去个人容量

+--------------------+------------------+
hotel_stay
+--------------------+------------------+
room (PK)
99
99
10
10
10

+--------------------+------------------+
hotel  
+--------------------+------------------+ 
room(FK)  |   capacity
99        |   10
10        |   12

输出将与酒店在同一张桌子上,或者我将不得不给我们作为?

room | capacity
99   | 8      
10   | 9   
4

1 回答 1

1

我不确定我是否完全理解你的问题。但是您可以使用这样的方法来获取每个房间的总容量:

select h.room, 
   (h.capacity - hs.TotalBooked) as Capacity
from hotel h
inner join 
(
    select COUNT(room) as TotalBooked, 
       Room
    from hotel_stay
    group by room
) hs
    on h.room = hs.room

请参阅SQL Fiddle with Demo。这将返回结果:

| ROOM | CAPACITY |
-------------------
|   10 |        9 |
|   99 |        8 |
于 2013-02-01T17:54:52.427 回答