Bela: Nur eine Zeile Joinen?

Beitrag lesen

Tut mir leid ich versuche es besser zu schreiben:

Tabelle 1: jede Menge IDs, die auch öfter vorkommen, also nicht Unique sind.

Tabelle 2: verschiedene 'Rangstufen'. Je öfter eine ID in Tabelle 1 vorkommt desto höhere Stufe erhält sie.

Ich muss also zuerst per COUNT() und GROUP BY die IDs in Tabelle 1 zählen. Dann soll die zugehörige Rangstufe aus Tabelle 2 ausgelesen werden. Gibt es zb. bei 100 und bei 150 eine Rangstufe und kommt eine ID 117 mal vor, soll sie Rangstufe 100 erhalten. Bis jetzt habe ich es so gemacht, dass ich zuerst die Anzahl der IDs ausgelesen habe und dann in einer extra Abfrage für jede ID die Rangstufe ausgelesen habe. Das geht aber bei einigen 100 IDs sehr zu Lasten der Geschwindigkeit:

SELECT * FROM tabelle2 WHERE rang >= anzahl ORDER BY rang ASC LIMIT 1

Das ganze möchte ich jetzt in einer Abfrage realisieren, weil es dann viel schneller läuft. Nur habe ich keine Idee wie es klappen könnte.

Gruß, Bela