Passende Indize sind aber vorhanden?
Bei einem JOIN mußt du etwas aufpassen, denn wenn der der angejointen Tabelle pro Datensatz mehr als 1 Datensatz passt, dann dupplizierst du deine Datensätze und mußt das Ergebnis eventuell über GROUP BY wieder zusammenfassen.
Joar, im Grunde wäre es wohl eher ein INNER JOIN -> nur wenn in beiden Tabellen was zusammenpassendes drin ist.
Eigentlich könnte man Denken
MySQL ist so schlau und führt das SubSelect nur einmal aus und schaut dann als TempTable nur noch in dessen Result nach.
Man könnte vielleicht noch über ein WITH-Clause das machen ... ich glaub
MySQL ab 8 kann sowas inzwischen.