Allerdings brauche ich diesen Subquery damit maxname und maxnameaurufe wirklich der eintrag mit den meisten Aufrufen und nicht mit dem kleinsten Index ist.
Wenn du das hier - (SELECT * FROM blocklistnames ORDER BY aufrufe
DESC) - sozusagen als dynamisch generierte Tabelle zum joinen verwendest, ist hier keine Sortierung sinnvoll oder nötig.
Es wird sowieso ALLES dazugejoint und nachher ja nochmal weiterverarbeitet und sortiert, daher ist die Angabe einer Reihenfolge bei diesem Zwischenergebnis sinnlos und nicht gestattet. Ich glaube das ist dein Denkfehler.
Eine Sortierung kannst du erst bei der Ausgabe machen, d.h. da wo auch ORDER BY T1.BlockID steht.