对于一个客户,我建立了一个旅行社网站。现在他们要求我优化和自动化一些事情。其中之一是搜索列表中显示的住宿必须是可预订的。
简化这是结构
我有一个住宿对象,一个住宿有 1 个或多个 PricePeriods。
我需要做的是选择与给定住宿相关的最后一个价格周期。priceperiod 有一个字段“date_until”,它是一个时间戳。在查询中必须进行检查,当前时间戳必须小于价格周期的最后一个时间戳。
这很容易通过第二个查询来完成,该查询只是从连接到给定住宿的所有 priceperiod 行中的 priceperiod 表中获取最后一个时间戳。
我想知道这是否是最好的情况,或者我是否应该为此使用子查询。如果是这样,这样的查询会是什么样子?我对子查询没有太多经验。
更新
表结构(简单)
住宿->身份证
PricePeriod -> ID | 住宿ID | 日期直到
简化:
SELECT fieldlist FROM Accommodation WHERE ID = $id
SELECT MAX(DateUntil) FROM PricePeriod WHERE AccommodationID = $id
但我想在一个查询中做到这一点。我希望这样清楚..