codice:
SELECT AVG(GoalCasa) 
FROM TbPartita
JOIN TbSquadra ON TbPartita.SquadraOspite = TbSquadra.Nome
	AND TbSquadra.Citta <> 'Milano' /* Non ricordo se su MySQL è <> o != */
WHERE 
Turno NOT IN
(
SELECT Turno FROM TbPartita
WHERE GoalCasa >= 5
GROUP BY Turno
)
Non sono sicuro che la sintassi sia esente da errori.
Ci sta che la GROUP BY sia facoltativa (o che addirittura non funzioni se non c'è niente da aggregare), o che vada sostituita da "SELECT DISTINCT Turno FROM..".

Le Join con quest astruttura non è che mi entusiasmino... avere due chiavi esterne in TbPartita mi fa venire dei dubbi.

E poi, come ho scritto nel commento, non mi ricordo se il simbolo di "diverso" è '<>' o '!='.

Per il resto credo che dovrebbe funzionare. Però dovresti provarla e vedere se il risultato è quello giusto. Non sono sicuro che sia perfetta.


Per il resto, ti ripeto, io aggiungerei anche un campo Data come Primary Key nella tabella Partita, altrimenti rischi di trovarti due partite con stessa squadra di casa e stessa squadra ospite che potrebbero confondersi.

Fai sapere

Ciao ciao