アイテム テーブルがあります: itemID、itemName 各アイテムは一定期間予約できます。アイテムごとに複数の予約が存在する可能性があります。予約が重複することはありません。
予約は予約テーブルに保持されます: itemID、startDate、endDate
日数、開始日、終了日を指定し、指定された開始日と終了日の間で、その日数以下の長さの予約されていない期間を持つアイテムを検索したいと考えています。つまり、指定された日付範囲内の「短期在庫」アイテムを探しています。次に、itemID ごとに短期間の在庫の開始日と終了日のリストを返したいと考えています。
理想的には単一のMySQLクエリでこれを行う方法についての提案をいただければ幸いですが、PHPループで長時間実行しても問題ありません。
これまでのところ、私のアプローチは、指定された開始日と終了日内またはそれらにまたがる予約を含む予約テーブル内のすべての一意の itemID を取得し、PHP と MySQL クエリの組み合わせで全体の範囲を解析し、itemID と配列への「短期期間」の開始日と終了日ですが、それはエレガントなアプローチではありません。
ありがとうございました