【发布时间】:2021-12-26 08:26:05
【问题描述】:
我有 2 个要加入的表:
此表显示了满足给定任务/技能组合的多个标准的所有员工,因此是分配给该任务的候选人:
| task_id | task_start | task_end | skill_id | employee_id |
|---|---|---|---|---|
| 1 | 2020-01-15 | 2020-01-20 | 38 | 1001 |
| 1 | 2020-01-15 | 2020-01-20 | 38 | 1002 |
此表显示已分配给员工的任务:
| assign_id | employee_id | task_id | skill_id | assign_start | assign_end |
|---|---|---|---|---|---|
| 16285 | 1001 | 4 | 91 | 2020-01-01 | 2020-01-18 |
| 16286 | 1034 | 2 | 84 | 2020-04-01 | 2020-04-19 |
我正在尝试加入这些表以显示可以将哪些员工分配给某项任务。业务规则是员工一次只能完成一项任务。
如何在分配表中查询可能的日期重叠,然后从显示所有可能分配的结果表中排除该员工?
例如,任务 1,技能 38,员工 1001 可能适合分配(第一个表的用途),但在查询第二个表后,您会看到他们有一个日期与任务 1 的日期。
我想为所有可能的并且满足无日期重叠标准的任务生成一个包含 task_id、skill_id 和 employee_id 的表。
注意:一旦进行分配,查询将需要再次运行以将其与新数据进行比较...
【问题讨论】:
-
你之前有没有试过解决?!而且,最后一个音符呢?哪里可以分配?在网站或应用程序中
标签: mysql join relational-database