2017-01-11 9 views
0

各ユーザーがテーブル内で複数の予約を行っている場合、予約の開始日と終了日がユーザーの日付と重複しないようにユーザーの詳細と予約の詳細を取得する必要があります合格。タイムスタンプが重複しない場所でのMySQLの選択

ユーザー

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 

サイトのユーザーDONTは、彼らが指定した時間帯に予約を持っているユーザーを検索することができます。だから、彼らは01/01/2017まで05/01/2017のような日付を検索することができ、その時間中にuser_id1に予約があれば、結果に表示されません。私は、クエリを持って

は、現在のように:

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; 

答えて

0
SELECT users.name, user_bookings.name 
FROM users 
JOIN user_bookings ON users.id = user_bookings.user_id 
WHERE NOT ((DATE_FORMAT(user_bookings.start_date,'%m/%d/%Y') >= '$start_date' AND DATE_FORMAT(user_bookings.end_date,'%m/%d/%Y') <= '$end_date')) AND users.id = 1 
GROUP BY users.id; 
関連する問題