Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql-Überschneidungen von zwei Tabellen in Zeitstempeln

Ich verstehe nicht wirklich, wie der Datensatz mit dem Ergebnissatz korreliert, aber es scheint mir, dass Sie so etwas mehr oder weniger wollen ...

 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 |
 +-------------------+------------+--------------+----------+

Übrigens duration scheint in diesem Zusammenhang überflüssig zu sein, da (zum Beispiel) SUM(m.endtime-m.starttime) das gleiche Ergebnis liefert.