sql >> Databáze >  >> RDS >> Mysql

MySQL Hledáme volné pokoje v rezervačním systému

Chcete-li vyhledat všechny pokoje, které v určitém časovém období nemají žádné rezervace, zvažte následující:

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

Co se tam děje?

Ve vnitřním dotazu hledám v seznamu rezervací rezervace, které jsou alespoň částečně v požadovaném časovém rámci, a získám jejich ID pokojů. A pak ve vnějším dotazu vyžádám z tabulky místností všechna ID místností, která NEJSOU uvedena, to znamená, že nemají žádnou rezervaci, která je alespoň částečně v požadovaném časovém rámci.

@StartDate a @EndDate byste museli upravit vy - musíte tam vložit své proměnné.




  1. Rady k výkonu SQL Server od Brenta Ozara a Pinala Davea

  2. java aplikace, vlákno se zasekne po zabití připojení MySQL

  3. Monitorování distribuce Percona pro PostgreSQL – klíčové metriky

  4. Jak SPACE() funguje v MariaDB