sql >> Databasteknik >  >> RDS >> Mysql

Överlappande boknings-SQL

Du är på väg att tro att detta har att göra med flera rader från sammanfogningen. Problemet ligger i din logik i WHERE-satsen. Du säger inte vad du vill ha när det gäller datum, så det är omöjligt att veta vad lösningen ska vara.

Jag förenklade till att bara titta på bokningsbordet. Jag får de två raderna där du bara väntar en. Allt du behöver göra är att ta reda på det villkor som du verkligen vill ha.

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)


  1. I Oracle AS fungerar inte aliaset

  2. Tillåter oracle alternativet för oengagerad läsning?

  3. hur man omindexerar mysql-tabellen

  4. Hur designar jag en tabell som kommer att lagra mycket stora data?