【问题标题】:How do i subtract from multiplier row , from 2 table? mySQL如何从 2 表中减去乘数行? mysql
【发布时间】:2013-02-01 17:45:28
【问题描述】:

我一直在努力寻找从 2 表中减去乘数行的方法?因为我不断收到来自 mySQL 工作台的错误。

我有 2 张桌子 hotel, hotel_stay

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

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

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

输出将与酒店在同一张桌子上,否则我将不得不对我们进行 AS?

room | capacity
99   | 8      
10   | 9   

【问题讨论】:

  • 你能再跑一次来描述你的数据吗?我尝试对其进行编辑以使其可读,但我不确定您的表格的外观。

标签: mysql subtraction


【解决方案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 |

【讨论】:

  • 您好,感谢您的回复,会试试这个但是 1 个问题这个代码做什么 hs.TotalRoom Capacity ? - 编辑 - 天哪!谢谢!我正在寻找3个小时,谢谢。将保留此代码以供将来参考
  • @KelvinSeah hs.TotalRoom 是子查询的计数。我只是给它起了这个名字,你可以更改别名。
  • 非常感谢它有效!早就应该问这个问题,而不是找了 3 个小时无济于事。将保留此以供将来参考
  • @KelvinSeah 很高兴为您提供帮助。如果您发现此答案有帮助,请考虑通过单击其左侧的复选标记来接受它。它将帮助该网站的未来访问者,您将获得网站代表接受。
  • 那最后一个问题是inner join是做什么的,我看到了一些解释,无法理解?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-30
  • 1970-01-01
  • 1970-01-01
  • 2015-02-18
  • 1970-01-01
  • 2022-01-23
  • 2023-03-20
相关资源
最近更新 更多