Existem nomes sobrepostos? Em caso afirmativo, verifique também se as equipes correspondem (adicione
s.HomeTeam = p.team
para o bloco onde). Se houver jogadores com o mesmo nome em um time, você terá que resolver esses conflitos manualmente. Para selecionar todos os guardiões/capitães de uma só vez, você precisa de left outer joins . Eu acho que será uma entrada por jogador, então você tem que entrar na mesma mesa 4 vezes.
Depois de selecionar os dados corretos, você pode inseri-los em seu
testMatch
tabela com INSERT ... SELECT
.