Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nakładające się SQL rezerwacji

Zbaczasz ze ścieżki, myśląc, że ma to związek z wieloma wierszami z połączenia. Problem jest z twoją logiką w klauzuli WHERE. Nie mówisz, czego chcesz pod względem dat, więc nie można wiedzieć, jakie powinno być rozwiązanie.

Uprościłem się do patrzenia na tabelę rezerwacji. Dostaję dwa rzędy, w których oczekujesz tylko jednego. Wszystko, co musisz zrobić, to wymyślić warunek, którego naprawdę chcesz.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zagnieżdżone złączenia w Codeigniter

  2. Korzystanie z przygotowanych wyciągów z kursorem

  3. Wyjaśnij MySQL wyjaśnij matematykę planu wykonania, różnica między dwoma planami

  4. Wybierz rekord tylko wtedy, gdy poprzedni ma niższą wartość

  5. Hibernacja zapytania wyszukiwania