sql >> Database >  >> RDS >> Mysql

MySQL Op zoek naar gratis kamers in reserveringssysteem

Houd rekening met het volgende om te zoeken naar alle kamers die geen boekingen hebben in een bepaald tijdsbestek:

SELECT roomID FROM room WHERE roomID NOT IN(
    SELECT roomID FROM reservation WHERE startDate < @EndDate AND endDate > @StartDate
)

Wat gebeurt daar?

In de innerlijke vraag zoek ik in de reserveringslijst naar reserveringen die op zijn minst gedeeltelijk binnen het vereiste tijdsbestek vallen en krijg ik hun kamer-ID's. En dan, in de buitenste vraag, vraag ik van de kamertafel alle kamer-ID's die NIET worden vermeld, dat wil zeggen, ze hebben geen reservering die op zijn minst gedeeltelijk binnen het vereiste tijdsbestek valt.

@StartDate en @EndDate zouden door u moeten worden gewijzigd - u moet uw variabelen daar plaatsen.




  1. MySQL-opdrachtuitvoer te breed in opdrachtregelclient

  2. Foreign Key met meerdere kolommen:stel één kolom in op Null ON DELETE in plaats van alles

  3. Waarde automatisch in database invoegen

  4. Hoe BIT_LENGTH() werkt in MariaDB