Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Mysql join com correspondência de tempo


Tente isto:
SELECT j.id, j.starttime, j.endtime, j.jobname, c.cpuusage
FROM
(
    SELECT j.id, j.starttime, j.endtime, j.jobname, MAX(c.usagetime) AS usagetime
    FROM jobinfo AS j
    LEFT JOIN cpuinfo AS c
    ON c.usagetime <= j.starttime
    GROUP BY j.id
) AS j
JOIN cpuinfo AS c
ON j.usagetime = c.usagetime

Isso dá a saída que você queria. Ele encontra o valor mais recente de cpuusage antes da hora de início de cada trabalho. Ele não lida com alterações no cpuusage enquanto o trabalho está em execução.