Leser: 30
1
2
3
4
5
SELECT counter.timestamp, counter.wert, UNIX_TIMESTAMP(counter.timestamp) AS unix_time, STATUS.wert
FROM Counter.`99999910` AS counter, alt.`statusanz` AS STATUS
WHERE (UNIX_TIMESTAMP(counter.timestamp) BETWEEN 1295859173 AND 1295869173)
AND (UNIX_TIMESTAMP(STATUS.Zeitstempel) BETWEEN counter.timestamp AND counter.timestamp)
ORDER BY timestamp ASC
1
2
3
4
SELECT timestamp,col1,col2,col3,...,colx FROM tabelleA
UNION
SELECT timestamp,col1,col2,col3,...,colx FROM tabelleB
ORDER BY 1
2011-01-26T10:35:31 pqIch vermute mal so:an der einen stelle sagst du zeitstempel, an der anderen zeitbereich.
halten wir doch mal fest, dass es zeitstempel sind und man für eine zeile immer nur einen zeitstempel haben kann.
wie willst du dann zwei tabellen zusammenbringen, die nicht die gleichen zeitstempel haben?
2011-01-26T10:35:31 pqselbst wenn du erklären kannst, wie du aus einem zeitstempel in einer zeile einen zeitbereich machst, dann bleibt immer noch die frage, wie du eventuell mehrere werte aus tabelle 2 in einer ergebniszeile unterbringen willst.
1
2
3
4
5
6
7
8
9
10
SELECT c.timestamp, c.wert, count( a.wert ) , avg( a.wert )
FROM Counter.`99999910` AS c
LEFT JOIN alt.`statusanz` AS a ON a.Zeitstempel
BETWEEN c.timestamp - 0.005
AND c.timestamp + 0.005
WHERE UNIX_TIMESTAMP( c.timestamp )
BETWEEN 1295859173
AND 1295869173
GROUP BY c.timestamp
LIMIT 0 , 30
1
2
3
4
5
6
7
SELECT c.timestamp, c.wert, UNIX_TIMESTAMP(c.timestamp) AS unix_time, a.wert
FROM (SELECT c.timestamp AS stamp1, max(a.Zeitstempel) AS stamp2
FROM Counter.`99999910` as c
LEFT JOIN alt.`statusanz` AS a ON c.timestamp >= a.Zeitstempel
GROUP BY c.timestamp)
LEFT JOIN c ON c.timestamp = stamp1
LEFT JOIN a ON a.Zeitstempel = stamp2;