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

Overlappende Booking SQL

Du er på vej ved at tro, at dette har at gøre med flere rækker fra sammenføjningen. Problemet er din logik i WHERE-klausulen. Du siger ikke, hvad du ønsker i forhold til datoerne, så det er umuligt at vide, hvad løsningen skal være.

Jeg forenklede ned til bare at se på bookingbordet. Jeg får de to rækker, hvor du kun forventer én. Alt du skal gøre er at finde ud af den betingelse, du virkelig ønsker.

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. Firebird til MySQL-forespørgselsmigrering - Vælg Inner Join Subquery

  2. hvorfor postgres giver samtidig række opdateret fejl, når jeg låser hele tabellen eksplicit

  3. Spring Boot data-jpa og nativeQuery Postgres cast

  4. Hvordan opretter man LEFT JOIN med SELECT underforespørgsel ved hjælp af QueryBuilder i Doctrine 2?