MySQL结果集的多个连接/查找

时间:2017-12-04 20:36:48

标签: mysql query-optimization

我不确定如何使用此类动作来尝试寻求帮助。

我有一张表(' shift'),它是每个工作周开始的日期列表,以及5个班次字段。班次字段都有员工用户ID(user_id)。

我需要进行查询以选择特定的一周或一周的范围,我将用户ID转换为第一个+最后一个+ uid组合。

现在,对于一周的查询,查询需要7秒才能运行。任何人都可以指向一个针对单个查询进行多次查找的方法,该查询运行得更快吗?如果有人知道我可以搜索的这类动作的关键词或短语,我不确定如何参考我在这里尝试做的事情。谢谢你的帮助。

SELECT s.shift_week, 
CONCAT(w1.first_name, ' ', e1.last_name, ' (', e1.user_id, ')' ) AS slot_1,
CONCAT(w2.first_name, ' ', e2.last_name, ' (', e2.user_id, ')' ) AS slot_2,
CONCAT(w3.first_name, ' ', e3.last_name, ' (', e3.user_id, ')' ) AS slot_3,
CONCAT(w4.first_name, ' ', e4.last_name, ' (', e4.user_id, ')' ) AS slot_4,
CONCAT(w5.first_name, ' ', e5.last_name, ' (', e5.user_id, ')' ) AS slot_5
FROM work_shifts.shifts AS s
LEFT JOIN employee_directroy.employees e1 ON o.slot_1 = e1.user_id 
LEFT JOIN employee_directroy.employees e2 ON o.slot_1 = e2.user_id 
LEFT JOIN employee_directroy.employees e3 ON o.slot_1 = e3.user_id 
LEFT JOIN employee_directroy.employees e4 ON o.slot_1 = e4.user_id 
LEFT JOIN employee_directroy.employees e5 ON o.slot_1 = e5.user_id 
WHERE o.shift_week = '2017-11-26'

0 个答案:

没有答案