Как я могу получить выбранное время из 2 расписаний? - PullRequest
0 голосов
/ 12 октября 2018

Я пытался получить все данные за выбранное время пользователем.Например, я выбираю 10: 00 AM и у меня есть 2 таблицы (start_shift и end_shift).

start_shift - 9:00 AM (VARCHAR)

end_shift - 12: 30 PM (VARCHAR)

Это мой запрос

SELECT * FROM `users` tbl1 LEFT JOIN user_sched tbl2
ON tbl1.uid=tbl2.uid AND TIME(tbl2.start_shift) > TIME('10:00 AM') AND 
TIME(tbl2.end_shift) < TIME('10:00 AM')
WHERE tbl2.sched_day = 'monday'
GROUP BY tbl1.uid

Все еще получаю пустое значение

Users Table
uid | fname  | lname
1   | Robert | Downy
2   | Jorge  | Dee

User Sched Table
sid | sched_day| start_shift | end_shift | uid
1   | monday   | 09:00 AM    | 12:30 PM  | 1
2   | monday   | 01:30 PM    | 05:30 PM  | 2

1 Ответ

0 голосов
/ 12 октября 2018

Я не думаю, что MySQL обращает внимание на «AM».Что еще более важно, ваши условия в неправильном направлении.Я думаю, что вы намерены:

SELECT *
FROM users u LEFT JOIN
     user_sched us
     ON u.uid = us.uid AND
        TIME(us.start_shift) < TIME('10:00:00') AND 
        TIME(us.end_shift) > TIME('10:00:00') AND
        us.sched_day = 'monday';

GROUP BY с SELECT * просто не имеет смысла.Если вы агрегируете строки, обычно вы используете функции агрегирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...