sql >> Database teknologi >  >> RDS >> Mysql

Mysql join med tidsmatching

Prøv dette:

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

Dette giver det output, du ønskede. Den finder den seneste værdi af cpuusage før starttidspunktet for hvert job. Den håndterer ikke ændringer i cpuusage, mens jobbet kører.



  1. Brug PHP til at dumpe mysql-værdier i JSON-filen

  2. isset()-funktionen returnerer sand, selv når elementet ikke er indstillet

  3. Sådan opretter du en databasemodel fra bunden

  4. Forstå indekser i MySQL:Anden del