2017-07-06 3 views
-5

Ich habe Tabellen mit folgenden Spalten:SQL-Abfrage für Hotelbuchung suchen

Hotel (id, Name, Adresse)

Zimmer (ID, Name, Preis, hotel_id)

room_calendar (customer_id, room_id, date) Wir erstellen für den jeweiligen Raum einen Datensatz, wenn dieser von einem bestimmten Kunden gebucht wird.

Wie kann ich die Datenbank direkt anhand des Ankunfts- und Abreisedatums abfragen, um die Verfügbarkeit des Hotels zu überprüfen?

Vielen Dank.

+1

Willkommen bei Stack Overflow. Bitte nehmen Sie sich einige Momente Zeit, um eine [Tour] (https://stackoverflow.com/tour) zu machen und auch [how-to-ask] (https://stackoverflow.com/questions/how-to-ask) zu lesen bessere Antworten auf Ihre Fragen –

+0

Was haben Sie bisher versucht, Ihr Problem zu lösen? Bitte zeigen Sie uns Ihre Vorgehensweise. Erwähnung: Stackoverflow ist kein kostenloser Code-Schreibservice. –

+0

Entschuldigung. Ich bin ein Neuankömmling hier. Ich bin mir nicht sicher, wie ich Hilfe von der Gemeinde bekommen könnte. –

Antwort

1

LINKE VERBINDUNG in room_calendar Tabelle mit Ihrem Suchdatum.

Ein Auge auf: WHERE room_calendar.date IS NULL Wenn für dieses Zimmer in room_calendar Tabelle keine Zeile ist, ist das Zimmer für diesen Tag nicht gebucht.

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

Vielen Dank. Ist es möglich, eine Sicht für weitere Abfragen zu erstellen? Zum Beispiel repräsentiert jeder Eintrag, dass das Hotel zu einem bestimmten Datum voll ist (alle Zimmer sind gebucht). –

Verwandte Themen