如何从2个时间表中获取所选时间?

yqkkidmi  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(297)

我试图从用户选择的时间获取所有数据。例如,我选择10:00am,我有两个表(start\u shift和end\u shift)。
开始轮班-上午9:00(varchar)
班次结束-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
wj8zmpe1

wj8zmpe11#

我不认为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 *` 只是说不通。如果要聚合行,通常会使用聚合函数。

相关问题