【发布时间】:2015-03-01 13:51:12
【问题描述】:
我有一个数据库,其中包含工人和他们可以完成的三项不同任务。每个任务表都包含执行此任务的工作人员、执行任务的时间和时间。
所以表格如下所示:
工作表:
-------------------------
|worker_id | worker_name|
|----------|------------|
| | |
任务表:
------------------------------------
|task_id | worker_id | date | time |
|--------|-----------|------|------|
| | | | |
每个任务表如上所示,分别称为 task1、task2、task3。不可能将它们放在同一个表中,因为每个任务都有其他特定于自身的列,这些列不是此联合所必需的,而是在其他地方使用的。
要使用的三个任务表的并集如下:
SELECT `date`, time FROM task1
UNION ALL SELECT `date`, time FROM task2
UNION ALL SELECT `date`, time FROM task3
如何使用上述联合编写一个 select 语句来返回每个工人的 ID 和姓名,以及他们最近任务的日期和时间长度。
我尝试使用从以下问题中选择的答案,但将 wp_posts 表替换为三个任务表的并集,但没有成功: MySQL order by before group by
【问题讨论】:
-
我仍然有一个核心任务表。
-
您将如何处理具有不同其他列的不同任务?
-
按照您的建议将附件数据放在单独的表中,但只将公共数据存储在一个地方