为什么时间不在这里工作,但超时正在工作?
问题描述:
为什么数据在整个数据中都是相同的,但超时不是。 超时它引用正确的行,而不是在时间。为什么时间不在这里工作,但超时正在工作?
这里是我的sql查询
SELECT a.emp_id
,d.course_code
,d.start_time
,d.end_time
,(
SELECT TIME
FROM hris_biometrics_attendance
WHERE DATE = '2017-06-13'
AND (TIME <= d.start_time)
AND emp_id = a.emp_id
AND floor = d.floor LIMIT 1
) AS time_in
,(
SELECT TIME
FROM hris_biometrics_attendance
WHERE DATE = '2017-06-13'
AND (TIME >= d.end_time)
AND emp_id = a.emp_id
AND floor = d.floor LIMIT 1
) AS time_out
FROM hris_ftl_final_courses a
,hris_ftl_final_courses_details d;
这里是我的数据库输出:
emp_id | course_code | start_time | end_time | time_in | time_out
1 | COURSE1 | 08:00:00 | 09:00:00 | 7:59:33 | 09:05:00
1 | COURSE2 | 10:00:00 | 12:00:00 | 7:59:33 | 12:06:00
1 | COURSE3 | 13:30:00 | 15:00:00 | 7:59:33 | null
我想时间在小于START_TIME或等于START_TIME。 我的sql查询不起作用。
我正在使用heidisql。 mariadb
有人可以帮我解决这个问题吗?
答
如果没有ORDER BY
,优化程序可以按照需要的顺序自由传送行。 LIMIT 1
为您提供了这个不可预测的排序列表中的第一个。
将ORDER BY TIME ASC
添加到一个子查询,ORDER BY TIME DESC
添加到另一个子查询。
有人可以帮助我吗? – Selle