2017-07-06 17 views
-5

を検索する:SQLクエリ私は、次の列を持つテーブルを持ってホテルの可用性

ホテル(ID、名前、住所)

部屋(ID、名前、価格、hotel_id)

room_calendar (customer_id、room_id、date)特定の顧客が予約した場合、特定の部屋の日付レコードを作成します。

到着日と出発日に基づいてデータベースを直接クエリして、ホテルの空き状況を確認するにはどうすればよいですか?

ありがとうございます。

+1

ようこそスタックオーバーフロー。 [ツアー](https://stackoverflow.com/tour)にアクセスするには、少し時間を取ってください。また、[how-to-ask](https://stackoverflow.com/questions/how-to-ask)を読んであなたの質問に対するより良い答え –

+0

あなたの問題を解決するためにこれまでに何を試みましたか?あなたのアプローチを教えてください。注意:Stackoverflowは無料のコード作成サービスではありません。 –

+0

申し訳ありません。私はここに新しい人です。私はどのように私はコミュニティからいくつかの助けを得ることができるか分からない。 –

答えて

1

あなたの検索日のroom_calendarテーブルのLEFT JOIN。

次のことに気をつけてください。WHERE room_calendar.date IS NULL room_calendarテーブルにこのルームの行がない場合、その日は予約されていません。

SELECT hotel.name 
      ,room.name 
      ,room.price 
     FROM hotel 
INNER JOIN room 
     ON room.hotel_id = hotel.id 
LEFT JOIN room_calendar 
     ON room_calendar.room_id = room.id 
     AND room_calendar.date = @yourdate 
    WHERE room_calendar.date IS NULL 
+0

ありがとうございました。それ以降のクエリのためのビューを作成することは可能ですか?たとえば、各レコードは、ホテルが特定の日付に満席(すべての部屋が予約されている)であることを示します。 –

関連する問題