gpt4 book ai didi

mysql - SQL select 条件复杂

转载 作者:行者123 更新时间:2023-11-29 02:40:56 25 4
gpt4 key购买 nike

我正在用一些 SQL 查询和它背后的几乎逻辑来敲打我的脑袋。

假设我们有这些表:

餐 table 酒店

+----+---------+
| id | name |
+----+---------+
| 1 | Hotel A |
+----+---------+

表 hotel_rooms

+----+----------+-----------+
| id | hotel_id | room_type |
+----+----------+-----------+
| 1 | 1 | dbl | <- can be used as A,B,C,D,E,F
| 2 | 1 | dbl | <- can be used as B,C,D,E,F
| 3 | 1 | sng | <- can be used as A
| 4 | 1 | trp | <- can be used as D,E,F
+----+----------+-----------+

表 hotel_room_usages

+----+---------+-------+
| id | room_id | usage |
+----+---------+-------+
| 1 | 1 | B |
| 2 | 1 | C |
| 3 | 1 | A |
| 4 | 1 | D |
| 5 | 1 | E |
| 6 | 1 | F |
| 7 | 2 | B |
| 8 | 2 | C |
| 9 | 2 | D |
| 10 | 2 | E |
| 11 | 2 | F |
| 12 | 3 | A |
| 13 | 4 | D |
| 14 | 4 | E |
| 15 | 4 | F |
+----+---------+-------+

如果我搜索使用 A 的 2 个房间使用 D 的 3 个房间作为单独的查询,结果应该是具有相应房间 ID 的酒店 A。

问题是,如果我同时搜索使用 A 的 2 个房间 和使用 D 的 3 个房间,它也会返回酒店 A,因为它不计算某些房间可以使用作为 A 和 D。
房间应该是独一无二的/总共 5 个/。当前示例不应返回结果,因为酒店共有 4 个房间。

最佳答案

这有帮助吗?

-- 两个房间使用 a

select id from hotel_room_usages where usage = 'a'

-- 使用d的三个房间

select id from hotel_room_usages where usage = 'd'

-- 房间数

select count(distinct(room_id)) from hotel_room_usages where usage in ('a','d')

关于mysql - SQL select 条件复杂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52290397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com