2017-09-25 3 views
1
select sum(total) from (
(select sum(team1_score) as total from country,match_results where country_name=team1 group by country_name as s1) 
UNION ALL 
(select sum(team2_score) as total from country,match_results where country_name=team2 group by country_name as s2) 
); 

Répondre

0

Retirez le deuxième alias de sélection et l'alias pour le groupe par et assigna nom propre à la sous-requête de

select sum(total) from (
    select sum(team1_score) as total 
    from country,match_results 
    where country_name=team1 
    group by country_name 
    UNION ALL 
    select sum(team2_score) 
    from country,match_results 
    where country_name=team2 
    group by country_name 
) T 

Vous devez utiliser explicitement jointure

select sum(total) from (
    select sum(team1_score) as total 
    from country 
    inner join match_results on country.country_name=team1 and 
    match_results.team1=team1 
    group by country_name 
UNION ALL 
    select sum(team2_score) 
    from country 
    inner join match_results on country.country_name=team2 and 
    match_results.team2=team2 
    group by country_name 
) T 
+0

Un grand merci scaisEdge, Les deux solutions fonctionnent très bien maintenant. Mais dans la deuxième suggestion d'utiliser jointure interne pouvez-vous expliquer pourquoi utiliser deux conditions country.country_name = team2 et match_results.team2 = team2 ?? –

+0

est le même .. j'ai hav eopted pour cela parce que c'est plus simple à comprendre, mais vous pouvez également utiliser de country interne join match_results sur country.country_name = match_results.country_name et country.country_name = team1 ... est le même ... en utilisant la propriété transitive ou non le résultat ne change pas – scaisEdge

+0

@nikhilkekan bien si ma réponse est correcte s'il vous plaît marquer comme accepté ... voir comment ici http://meta.stackexchange.com/questions/5234/how-does -acceptation-une-réponse-travail – scaisEdge

1

Essayez de supprimer des alias et à savoir as s1as s2

+0

essayé travail na pas merci quand même –

0

Les alias doivent être en dehors des sous-requêtes; MySQL pense probablement que vous essayez de (inutilement) alias les critères de regroupement.

+0

essayé didnt travail, merci quand même –