2011-07-14 4 views
1

J'utilise tableaux ci-dessous ...somme mysql et le groupe en donnant des résultats erronés

stats (id, game, user_id, rank, score, dnt) 
teams(id, name, dnt) 
users(id, username, email, team_id, dnt) 

Je veux saisir top 10 des équipes hautement scorer basé sur les statistiques (score total de l'équipe se calcule sur le score total par ses utilisateurs)

données d'échantillon pour les statistiques ...

| id | game | user_id | rank | score | dnt | 
+----+------+---------+-------+------+-----+ 
| 1 | test | 5  | 2 | 2200 | 
+--------+----------+----------+-----+-----+ 
| 2 | test | 3  | 1 | 2500 | 
+--------+----------+----------+-----+-----+ 

équipes

| id | name | dnt | 
+----+-------+-----+ 
| 1 | team1 |  | 
+----+-------+-----+ 
| 2 | team2 |  | 
+----+-------+-----+ 

utilisateurs

| id | username | email | team_id | 
+----+----------+-------+---------+ 
| 1 | user1 |  | 1  | 
+----+----------+-------+---------+ 
| 1 | user2 |  | 2  | 
+----+----------+-------+---------+ 

Et je suis en train suivant requête sql ...

SELECT t.name as team_name, sum(s.score) as total_score 
     FROM teams t 
     JOIN users u ON u.team_id = t.id 
     JOIN stats s ON s.user_id = u.id 
     GROUP BY team_name ORDER BY total_score DESC 

Mais au-dessus de la requête retourne 0 lignes, même je veux votre aide tp rédiger le score Top 10 utilisateurs.

Merci pour votre aide.

+0

données d'échantillons pour d'autres tableaux s'il vous plaît. – Jacob

+0

@cularis plus de données d'échantillon ajoutées. Merci. – seoppc

Répondre

2

Votre table user_id dans stats est introuvable dans votre table users. Vous avez même 2 utilisateurs avec le même id? Votre requête renvoie le résultat correct.

SELECT t.name as team_name, sum(s.score) as total_score 
FROM teams t 
INNER JOIN users u 
    ON u.team_id = t.id 
INNER JOIN stats s 
    ON s.user_id = u.id 
GROUP BY team_name 
ORDER BY total_score DESC 
LIMIT 10 
+0

merci pouvez-vous m'aider avec comment pouvons-nous obtenir les 10 meilleurs utilisateurs avec un score élevé. – seoppc

+0

Voilà. Évidemment, cela ne fonctionne que si vous avez des données correctes dans votre tableau. – Jacob

+0

merci homme pour votre aide – seoppc

Questions connexes