Hallo!
Die Subquery
(SELECT SUBDATE(MAX(time), INTERVAL 15 MINUTE) AS c_time,
messpunkt AS m2 FROM messungen) AS r_tsieht so aus als wolltest Du max(time)-15m PRO MESSPUNKT ermitteln; das tut sie aber nicht, sondern sie ermittelt max(time)-15m auf der ganzen Tabelle!
Sorry habe vergessen das group by mit ein zu tippen!
So ist das nicht zielführend; "messpunkt" steht in der Query schon wieder zweimal in SELECTs ohne "AS" und
Die Abfrage sieht wie folgt aus:
das scheint mir nicht plausibel, denn
SELECT id, time, messpunkt, data FROM messungen as l_t
INNER JOIN (select SUBDATE(max(time), INTERVAL 15 MINUTE) as c_time,
messpunkt FROM messungen
group by messpunkt ) as r_t
ON l_t.messpunkt = r_t.messpunkt
WHERE l_t.time > r_t.c_time
ORDER BY time DESC
MySQL beschwert sich zu Recht darüber:
"ERROR 1052 (23000) at line 1: Column 'messpunkt' in field list is ambiguous"
Bitte die Query genauso angeben, wie Du sie bislang verwendest!
Cut & Paste!
Da es ca. 700 Messpunkte
Aha!
und daher eine Menge an Daten in der Tabelle vorhanden
Dass da "eine Menge" ist war mir irgendwie schon klar.... ;-)
Und genau die Mächtigkeit dieser Menge solltest Du uns mitteilen, genau wie die restlichen Infos, die ich bereits genannt hatte:
Wichtig wäre es mal die Datentypen und Indices zu betrachten:
- Typ von messpunkt? Indiziert?
- Typ von data? Ist das ein Blob? Falls ja, wie groß im Mittel?
Insgesamt wäre natürlich das Mengengerüst wichtig:
- Aktuelle Zahl der Datensätze?
Zusätzlich wäre die Angabe der DB-Engine (MyISAM? InnoDB? ...?) zielfühend.
Grüsse
Solkar