Ich weiß jetzt natürlich nicht, wue groß Deine Tabellen sind und was für eine Maschine diese hostet... Aber 9 Sekunden empfinde ich schon als kleine Ewigkeit.
Wichtig für eine optimale Geschwindigkeit ist in jedem Fall, dass abfragerelevante Spalten einen Index besitzen!! Das kann man gar nicht oft genug wiederholen!
Vieleicht kommst Du auch mit eine
in Deinem subselect besser klar, als mit dem GROUP BY.