Was mich gerade noch etwas irritiert: Für dein Wunsch-Ergebnis sind gar keine Kopfdaten enthalten. Das kannst du ja rein über die Prozessdaten befüllen.
Wenn du das Zeug jetzt eigentlich irgendwie nach den Kopfdaten filtern willst (also alle Messungen im Zeitraum xy) dann würde ich folgendes Vorgehen empfehlen:
- Kopfdaten selektieren, die du brauchst (SELECT * where Date > 2016-11-11)
- Deren ids sammeln (Clientseitig z.B. in einem Hashset)
- Messungen selektieren (SELECT * FROM `theTable` WHERE `id` IN (n, ... nk); )
Die Anzahl der
SQL-Abfragen sollte möglichst
nicht linear mit der Datenmenge skalieren. Daher würde ich Lösung 1 von dir ausschließen. Lösung 2 ist ok, wenn die Kopfdaten klein oder wenige Datenzeilen pro Messung vorliegen. Grund ist, dass du ja für jeden Datensatz die Kopfdaten nochmal im Ergebnis hast, was bei großen Kopfdaten irgendwann langsam wird.