【发布时间】:2019-01-01 20:44:10
【问题描述】:
我正在使用 MySql。
我有一个表job,它有一个主键job_pk_id,该表存储了每个作业的详细信息。另外我有一个表job_running_status,其中job 表的job_pk_id 是一个外键,该表基本上包含每个job_pk_id 的作业运行时间的记录。对于相同的job_pk_id,将有多个条目作为同一个作业运行多次。 job_running_status 表还有一个字段 job_start_time,它给出了作业运行的每个实例的开始时间。
现在我的要求是为每个 job 获取最新的 job_running_status 。最新的job_running_status 将根据job_running_status 中最新的job_start_time(仅针对该特定工作)值进行选择。
我知道这可以在job 表和job_running_status 表之间使用INNER JOIN 和ORDER BY job_start_time desc 来实现,但我的挑战是这个ORDER BY 适用于JOIN 中的所有工作,但我需要仅适用于与特定工作对应的记录。
EDIT
I understand it might be confusing to understand me by just reading so I am providing some examples:
job表:
job_running_status表:
My final requirement after joining both the tables
注意:在加入时,我应该只获得与每个 JOB 表记录相对应的 1 条记录。该记录是根据该 JOB 的最新 job_start_time 选择的。
【问题讨论】:
-
显示一些示例数据会很好 ^ ^
-
'最新的 job_running_status 将根据 job_running_status 中最新的 job_start_time(仅针对该特定作业)值进行选择。您似乎只为每个工作选择了 1 条记录,那么为什么除了工作之外还需要订单?
-
'但我只需要适用于与特定工作相对应的记录。' - 所以如果你有那个jobname/id,就放一个过滤器
-
搜索相关子查询。顺便说一句,样本数据和预期输出作为文本更好,我们可以使用它而不是我们不能使用的图像。
-
@TimBiegeleisen 编辑了我的原始帖子以提供示例。
标签: mysql sql database inner-join greatest-n-per-group