2010-12-13 24 views
2

J'ai une table Mysql où elle combine trois tables. Cette table stocke des statistiques pour chaque combinaison des trois clés étrangères.Requête Mysql pour additionner une colonne d'une table où deux autres colonnes sont uniques lorsqu'elles sont combinées ensemble

par exemple:

1) Une table Fichiers

columns-

id - primary key 
name 
number_of_lines_of_text - the stats field 

2) Une table de dossiers a une relation un à plusieurs avec les fichiers tableau

colonnes-

id - primary key 
name 

3) Un Folder_Groups tableau a une relation plusieurs à plusieurs avec la table des dossiers

columns-

id - primary key 
name 

Enfin, la table de combinaison ordered_file_stats

columns-

folder_group_id - foreign key from 3 above(can repeat multiple times) 
folder_id - foreign key from from 2 above(can repeat muliple times) 
file_id - foreign key from 1 above, unique but only a subset of the records from 1 

J'ai besoin de sélectionner et additionner le champ number_of_lines_of_text de la table fichiers pour chaque combinaison unique de la folder_group_id et la folder_id dans le ordered_file_stats tableau.

Ce qui peut ressembler à

folder_group_id folder_id file_id 
    1    2   1 
    1    2   2 
    1    3   9 
    2    1   7 
    2    1   8 

Comment puis-je écrire l'instruction select pour obtenir les statistiques?

Répondre

0
select ofs.folder_group_id, ofs.folder_id, sum(Files.number_of_line_of_text) 
from ordered_file_stats ofs 
join Files on Files.id = ofs.file_id 
group by folder_group_id, folder_id