sql >> Database >  >> RDS >> Mysql

Overlappende boekings-SQL

Je bent van de baan en denkt dat dit te maken heeft met meerdere rijen van de join. Het probleem is met uw logica in de WHERE-component. Je zegt niet wat je wilt in termen van de data, dus het is onmogelijk om te weten wat de oplossing zou moeten zijn.

Ik vereenvoudigde het tot alleen maar kijken naar de boekingstabel. Ik krijg de twee rijen waar je er maar één verwacht. Het enige dat u hoeft te doen, is de voorwaardelijke uitvinden die u echt wilt.

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. 4 manieren om NULL te vervangen door een andere waarde in MySQL

  2. mysql trage zoekopdracht

  3. Wachtrij voor invoegen van MySQL-instructie

  4. Spring Batch ORA-08177:kan de toegang voor deze transactie niet serialiseren bij het uitvoeren van een enkele taak, GESERIALISEERD isolatieniveau