2010-12-02 19 views
3

J'ai quelques tables avec une relation parent-enfant. Je veux appliquer une fonction sum à une colonne de la table enfant et la renvoyer avec toutes les données de la table parent par exemple.Requête MySQL pour sommer des valeurs dans une autre table

Parent_table 
ID, Date, Title 

Child_table 
ID, another_id, column_to_sum 
//(ID is foreign key pointing to Parent_table) 

Sample Data in Parent_table 
1, 22-11-2010 00:00:00 , 'Some Title' 
2, 13-11-2010 00:00:00 , 'Some Title 2' 

Sample Data in Child_table 
1, 1, 10 
1, 2, 11 
1, 8, 3 
2, 5, 11 
2, 8, 6 

sortie de la requête doit renvoyer toutes les colonnes de parent_table avec une colonne supplémentaire, qui est, en additionnant les valeurs de column_to_sum dans Child_table pour chaque élément identifié par table_parent ID.

Comment?

Répondre

3
SELECT p.ID, 
     p.Date, 
     p.Title, 
     SUM(c.column_to_sum) Total 
    FROM Parent_Table p LEFT JOIN 
     Child_Table c ON p.ID = c.ID 
    GROUP BY p.ID 
+0

Tout d'abord, essayez de formater le code correctement. utilisez ht ecode burron 010101. Aussi, qu'en est-il de votre ** GROUP BY **? –

+0

merci pour la solution –

2

C'est du haut de ma tête, mais que diriez-vous

SELET p.ID, 
    p.Date, 
    p.Title, 
    SUM(c.column_to_sum) Total 
FROM Parent_Table p INNER JOIN 
    Child_Table c ON p.ID = c.ID 
GROUP BY p.ID, 
     p.Date, 
     p.Title 
+1

vous devez seul groupe par une colonne, puis utilisez commande par si vous le voulez différemment triée 'GROUP BY p.ID ORDER BY p.Date, p.Title' – zanlok