sql >> Database teknologi >  >> RDS >> Mysql

Hvordan får man ledige datoer med reservationer?

Hvis din reservationsformular beder om $start- og $slutdato/-tidspunkter for reservationen, vil denne forespørgsel fortælle, hvilke bærbare computere der er tilgængelige i hele perioden angivet af disse to datoer:

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 første to between klausuler vil finde alle bærbare computere, hvis start-/slutdatoer ikke falder inden for de anmodede start-/slutdatoer - f.eks. de er reserveret, men er tilgængelige i det angivne tidsinterval. Null-kontrollen finder alle bærbare computere, der slet ikke er reserveret. Og types.id-kontrollen begrænser søgningen til kun bærbare computere.




  1. Sådan nulstiller du AUTO_INCREMENT i MySQL

  2. INSERT og OPDATERING i én forespørgsel MYSQL

  3. Oracle CREATE TABLE-kommando i PL/SQL med 10 eksempler

  4. Opret PostgreSQL ROLLE (bruger), hvis den ikke findes