gpt4 book ai didi

mysql - 在单个 MySQL 查询中包含复杂的逻辑

转载 作者:行者123 更新时间:2023-11-29 12:04:08 24 4
gpt4 key购买 nike

我想减少使用单个查询搜索酒店的代码中的编程逻辑。


假设这是数据库表。一家酒店有多个契约(Contract)。

enter image description here

我想获取满足输入 max_adults 1(容量 1)个房间的房间数、max_adults 2(容量 2)个房间的房间数和 max_adults 2(容量 2)个房间的房间数的所有原始数据最多可容纳 3 名成人(可容纳 3 人)房间。

例如:

Input : 
2 rooms of max_adults=1(capacity 1)
1 rooms of max_adults=2(capacity 2)
3 rooms of max_adults=3(capacity 3)
必须输出满足所有 3 个条件且具有相同酒店 ID 的行。

如此处所示,输出必须包含酒店 1 和酒店 2 的所有原始数据

由于它们是两个独立的结果,因此需要额外的列来显示生成的 result_id(类似于 here 中的序列号,根据此问题,它必须具有重复项)。

我想了很多方法来做到这一点,但没有一个效果很好。这可以在单个查询中完成吗?

最佳答案

使用自连接:

SELECT r1.HOTEL_ID, r1.MAX_ADULTS, r1.NO_OF_ROOMS,
r2.MAX_ADULTS, r2.NO_OF_ROOMS,
r3.MAX_ADULTS, r3.NO_OF_ROOMS,
FROM rooms AS r1
INNER JOIN rooms AS r2 ON r1.HOTEL_ID=r2.HOTEL_ID
INNER JOIN rooms AS r3 ON r1.HOTEL_ID=r3.HOTEL_ID
WHERE r1.MAX_ADULTS=1
AND r2.MAX_ADULTS=2
AND r3.MAX_ADULTS=3

您必须添加子句来检查输入的房间数量条件。

生成的 result_id 将为 r1.HOTEL_ID

每个酒店都会有一行。

关于mysql - 在单个 MySQL 查询中包含复杂的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31847350/

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