sql >> Databasteknik >  >> RDS >> Mysql

Hur får man lediga datum med reservationer?

Om ditt bokningsformulär ber om $start- och $slutdatum/-tider för bokningen, kommer denna fråga att berätta vilka bärbara datorer som är tillgängliga under den period som anges av dessa två datum:

SELECT items.id, items.name
FROM items
LEFT JOIN types ON items.type = types.id
LEFT JOIN reservations ON reservations.item_id = items.id
WHERE (((reservations.endDate NOT between $start AND $end) and
      (reservations.startDate NOT between $start AND $end)) or
      (reservations.id IS NULL)) and
      (types.id = $laptop_type_id)

De två första between klausuler hittar alla bärbara datorer vars start-/slutdatum inte faller inom de begärda start-/slutdatumen - t.ex. de är reserverade, men är tillgängliga inom det angivna tidsintervallet. Nollkontrollen hittar alla bärbara datorer som inte är reserverade alls. Och types.id-kontrollen begränsar sökningen till endast bärbara datorer.




  1. Är det möjligt att ha en dynamisk främmande nyckel, och vad är bäst/korrekt att göra det?

  2. Hur du använder Prisma

  3. MySQL ERROR 1290 (HY000) --secure-file-priv option

  4. Utforska onlineindexoperationer på partitionsnivå i SQL Server 2014 CTP1