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

SQL di prenotazione sovrapposto

Sei fuori strada pensando che questo abbia a che fare con più righe dal join. Il problema è con la tua logica nella clausola WHERE. Non dici quello che vuoi in termini di date, quindi è impossibile sapere quale dovrebbe essere la soluzione.

Ho semplificato solo guardando il tavolo di prenotazione. Ottengo le due righe in cui te ne aspetti solo una. Tutto quello che devi fare è capire il condizionale che desideri davvero.

mysql> SELECT * FROM booking WHERE NOT(start <= '2018-07-23' AND end >= '2018-07-21');
+-----+------------+------------+-----------+
| uid | start      | end        | apartment |
+-----+------------+------------+-----------+
|   1 | 2018-07-18 | 2018-07-20 |         1 |
|   3 | 2018-07-18 | 2018-07-20 |         2 |
+-----+------------+------------+-----------+
2 rows in set (0.00 sec)