Jeder Benutzer hat mehrere Buchungen gegen sie in einer Tabelle, ich muss die Benutzerdetails und die Buchungsdetails, wo der Beginn und Ende der Buchung nicht mit dem Datum der Benutzer überlappt bestanden.MySQL wählen, wo Timestamps nicht überlappen
Benutzer
id | name
---------
1 | Ryan
2 | Dave
user_bookings
id | user_id | title | start_date | end_date
------------------------------------------------------
1 | 1 | Booking One | 1484133562 | 1484133562
2 | 1 | Booking Two | 1484133562 | 1484133562
3 | 2 | Booking Three | 1484133562 | 1484133562
Der Benutzer Website kann für Benutzer suchen, die DONT Buchungen sie angeben, während der Zeiten haben. So könnten sie nach Daten suchen wie: 01/01/2017
bis 05/01/2017
und wenn user_id 1 eine Buchung während dieser Zeit hat, werden sie nicht in den Ergebnissen angezeigt.
ich eine Abfrage zur Zeit haben mag:
SELECT
users.name,
user_bookings.name
FROM users
JOIN user_bookings ON users.id = user_bookings.user_id
WHERE NOT(('$start_date' <= user_bookings.start_date) AND (user_bookings.end_date <= '$end_date')) GROUP BY users.id;