Es werden zunächst alle möglichen Kombinationen gebildet, und das sind bei den genannten Zahlen 4810000 Stück, bzw. im Umkehrschluss, wenn die 370 feststeht und 4906940 die tatsächliche Anzahl ist, dann müsste deine Städte-Tabelle genau 13262 Einträge enthalten.
Bingo.
Vermutlich dauern diese 5 Mio Anfragen so lange...
Wenn ich berater.plz = staedte.plz setzen könnte, ginge die Abfrage sehr schnell - also ist das Problem die BETWEEN-Anweisung.
Kann man die SQL-Anweisung irgendwie anders formulieren? Muss ich einen anderen JOIN-Typ verwenden? Muss ich WHEN - THEN oder IF-Anweisungen in meinem SQL benutzen??