Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chồng chéo SQL đặt chỗ

Bạn đang đi chệch hướng khi nghĩ rằng điều này phải làm với nhiều hàng từ sự tham gia. Vấn đề là với logic của bạn trong mệnh đề WHERE. Bạn không nói những gì bạn muốn về ngày tháng, vì vậy không thể biết giải pháp nên là gì.

Tôi đã đơn giản hóa xuống chỉ nhìn vào bảng đặt phòng. Tôi nhận được hai hàng mà bạn chỉ mong đợi một. Tất cả những gì bạn cần làm là tìm ra điều kiện mà bạn thực sự muốn.

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. Làm thế nào để mysql sắp xếp các hàng có cùng giá trị?

  2. Kết nối ADO và msqli rất chậm

  3. Sự cố vùng chứa MySQL sau khi thay đổi /etc/mysql/my.cnf, làm thế nào để chỉnh sửa lại?

  4. đồng bộ cơ sở dữ liệu từ xa (mysql) với cơ sở dữ liệu sqlite và ngược lại

  5. Sử dụng Bí danh trong Tính toán SQL