mysql - 在另一个表中列出具有参数计数的名称 - mysql
问题描述
不知道如何描述它,我已经在互联网上搜索了几个小时并且已经麻木了。我有两张桌子。一个叫酒店,另一个叫房间。非常不言自明,但酒店是一个以“hotelNo”作为主键并带有城市和名称的酒店列表,而房间有其他信息和“hotelNo”作为酒店主键的外键。
酒店
+---------+---------------------+----------+
| hotelNo | hotelName | city |
+---------+---------------------+----------+
| 1 | Grosvenor Hotel | Sydney |
| 2 | ANA Hotel | Sydney |
| 3 | Great Mansion Hotel | Brisbane |
| 4 | Grand Hotel | Brisbane |
| 5 | Central Hotel | Sydney |
| 6 | Airport Hotel | Sydney |
+---------+---------------------+----------+
和房间
+--------+---------+------+--------+
| roomNo | hotelNo | type | rate |
+--------+---------+------+--------+
| 101 | 1 | S | 120.00 |
| 101 | 2 | D | 100.00 |
| 101 | 3 | S | 80.00 |
| 101 | 5 | D | 180.00 |
| 102 | 1 | S | 120.00 |
| 102 | 2 | S | 80.00 |
| 102 | 3 | S | 80.00 |
| 102 | 5 | K | 190.00 |
| 103 | 1 | S | 120.00 |
| 103 | 3 | D | 100.00 |
| 103 | 5 | S | 120.00 |
| 104 | 1 | D | 150.00 |
| 104 | 4 | Q | 100.00 |
| 104 | 5 | D | 140.00 |
| 105 | 1 | D | 150.00 |
| 105 | 4 | Q | 500.00 |
| 106 | 1 | D | 150.00 |
| 107 | 1 | Q | 180.00 |
| 108 | 1 | Q | 180.00 |
| 109 | 1 | Q | 180.00 |
+--------+---------+------+--------+
我被问到的问题是
“列出悉尼拥有 3 间或更多房间的酒店名称。”
我希望我的输出只是酒店的名称
+---------------------+
| hotelName |
+---------------------+
| Grosvenor Hotel |
| Central Hotel |
+---------------------+
任何帮助都会很棒,因为我还有一些事情要做。干杯
解决方案
只需按照上述评论的建议进行操作,然后加入两个表,按酒店汇总:
SELECT
h.hotelNo,
h.hotelName
FROM hotel h
INNER JOIN room r
ON h.hotelNo = r.hotelNo
GROUP BY
h.hotelNo,
h.hotelName
HAVING
COUNT(*) >= 3;
请注意,我使用酒店名称和酒店 ID 号进行选择(并汇总)。这是为了涵盖澳大利亚的两家酒店可能碰巧同名的情况。
推荐阅读
- mysql - MySQL Insert 语句,如果指定插入行的列值为0,不插入?
- wordpress - 如何将 woocommerce 永久链接插入标签
- php - 不能在 Laravel 中使用 stdClass 类型的对象作为数组
- swift - 转换时是否需要明确区分大小写?
- python - Pandas DataFrame:如何从不总是以两个数字结尾的列中提取最后两个字符串类型数字
- graphql - 在 GraphQL 中,如何“聚合”属性
- string - 在 Scala 中为字符串添加单引号
- ruby-on-rails - 如何倒计时过期日期
- excel - 使用 python 和 win32com 在 excel 中“显示公式”
- java - 如何检测数据中的切换并执行某些操作?