我正在使用mysql。
我有一张table job
有主键的 job_pk_id
表中存储了每个作业的详细信息。我还有一张table job_running_status
哪里 job
table的 job_pk_id
是一个外键,此表基本上包含为每个外键运行作业的时间记录 job_pk_id
。同一项将有多个条目 job_pk_id
因为同一个作业运行多次。 job_running_status
表还有一个字段 job_start_time
它给出了作业运行的每个示例的开始时间。
现在我的要求是拿到最新的 job_running_status
每 job
. 最新的 job_running_status
将根据最新的 job_start_time
(仅针对特定工作)价值 job_running_status
.
我知道这可以通过 INNER JOIN
以及 ORDER BY job_start_time desc
介于 job
表和 job_running_status
但我的挑战是 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
注意:当加入i a时,每个job表记录只对应一条记录。此记录是根据该作业的最新作业开始时间选择的。
2条答案
按热度按时间ssgvzors1#
您可以尝试此查询。
CROSS JOIN
使用子查询MAX(job_running_status)
然后加入job
以及job_running_status
table。测试DLL
查询
[结果]:
sqlfiddle公司
aiqt4smr2#
where子句中相关子查询的示例
如果您需要最新的n条记录,并且您不在版本8.0或更高版本上,则可以使用行号模拟