Verschachtelte SQL Abfrage

Master1991

Lieutenant
Registriert
Okt. 2007
Beiträge
689
Wir nehmen folgende Tabelle beispielhaft an:

idpricedatetyp_id
15,5019.071
25,2018.071
35,1017.071
418,519.073
519,7816.073
62008.063
7519.072
86,2017.072

Gewollt ist eine Abfrage die für jede Typ ID die LETZEN ZWEI Preis Informationen liefert.

SQL:
SELECT id, price, date FROM priceTable JOIN typTable ON typTable.id=priceTable.typ_id WHERE typ_id=X ORDER BY date DESC LIMIT 2

Das wäre die Abfrage wenn ich die Abfrage für einen bestimmte typ_id laufen lasse. Ich brauche die Veränderung sodass sie für alle vorhanden typIds die letzten zwei Preise ausgibt (ich kann die typ_id nicht mitgeben weil ich sie erst später weiß)
 
Sieht gut aus danke. DMS ist SQLite (Android). Ich teste
 
Hmm ich hab https://dba.stackexchange.com/a/40809 das Versucht. Kriege ständig einen Timeout. In meiner Tabelle sind momentan 61k Einträge und das ist nur die Testtabelle. Im Livebetrieb werden es eher ~ eine Millionen. Gibt es eine bessere Lösung oder muss ich irgendwie gucken das ich für jeden Typ eine eigene Abfrage starte?

EDIT// Ich konnte es anders lösen
 
Zuletzt bearbeitet:
Und wie? Würde sicherlich Leute freuen die mal vor dem gleichen Problem stehen.

Bei einer DB mit 1.000.000 Einträgen würde ich sowas mit StoredProcedures, evtl. Indexen oder programmseitig mit 2 Abfragen machen.
 
Wenn du bei einer simplen Query mit einfachem JOIN schon Performance-Probleme bekommst, dann solltest du, wie Einhörnchen bereits anmerkte, die Indizes überprüfen.
 
Zurück
Oben