sql >> Databasteknik >  >> RDS >> Mysql

mysql överlappar två tabeller i tidsstämplar

Jag förstår inte riktigt hur datamängden korrelerar med resultatuppsättningen men det verkar för mig att du vill ha något mer eller mindre så här...

 SELECT m.id
      , DATE(FROM_UNIXTIME(m.starttime))Date,SUM(m.duration) all_movement
      , SUM(l.duration) all_load
   FROM move_table m
   JOIN load_table l
     ON l.id = m.id
    AND l.endtime > m.starttime
    AND l.starttime < m.endtime
  GROUP 
     BY m.id
      , DATE(FROM_UNIXTIME(m.starttime));
 +-------------------+------------+--------------+----------+
 | id                | Date       | all_movement | all_load |
 +-------------------+------------+--------------+----------+
 | 00:50:c2:63:10:1a | 2012-10-29 |          391 |      520 |
 | 00:50:c2:63:10:1a | 2013-02-22 |          391 |      520 |
 | 00:50:c2:63:10:1b | 2013-02-22 |          181 |      220 |
 +-------------------+------------+--------------+----------+

För övrigt duration verkar vara överflödig i detta sammanhang eftersom (till exempel) SUM(m.endtime-m.starttime) ger dig samma resultat.



  1. Skydda kolumn, tillåt inte uppdatering, tillåt bara infogning om NULL i MySQL

  2. Hur man skapar ett användardefinierat datatypalias i SQL Server med T-SQL

  3. Tabellen är för bred för att passa i Markdown-genererad PDF

  4. Hur hänger dessa tabeller ihop?