【发布时间】:2011-04-01 00:44:27
【问题描述】:
我为一个客户建立了一个旅行社网站。现在他们要求我优化和自动化一些事情。其中之一是搜索列表中显示的住宿必须是可预订的。
简化了这个结构
我有一个 AccommodationObject,一个 Accommodation 有 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
但我想在一个查询中解决这个问题。我希望这样清楚..
【问题讨论】:
-
如果您发布表结构以及您自己尝试过的查询会有所帮助。