Ilja: Schulprojekt Hotelbuchung

Beitrag lesen

moin,

Jetzt müsste ich alle Hotels auswählen:
die einen Gewissen Zimmer_Art haben (Z.B.: Einzellzimmer) und abfragen
ob dort das Zimmer noch frei ist.

es ist eigentlich immer das gleiche vorgehen, als erstes für die richtige selektion sorgen. das heißt in deinem falle keine joins irgendwelcher art, sondern in der FROM klausel gehört nur die tabelle der hotels, alles andere ist schlechtes sql:

SELECT *
FROM booking_hotels h
WHERE h.Internet = 1
AND h.Pets = 1
AND h.Behindertengerecht = 1
;

jetzt nur die hotels nehmen, wo ein zimmer bestimmten typs frei ist, das geht mit einer korrelierten unterabfrage.

SELECT *
FROM booking_hotels h
WHERE h.Internet = 1
AND h.Pets = 1
AND h.Behindertengerecht = 1
AND EXISTS (SELECT NULL
            FROM hotel_zimmer z
            WHERE z.Hotel_ID = h.id
            AND z.zimmer_art IN ('Einbett-Zimmer', 'Doppelbett-Zimmer')
            AND z.anzahl - z.belegt > 0
           )
;

Ilja