2009-05-07 9 views
0

J'expérimente avec un système de marquage qui est une relation plusieurs-à-un. Mon schéma est:Relation plusieurs-à-un pour implémenter des balises: Comment compter le nombre de fois qu'une balise est utilisée?

articles table:

  • ITEM_ID
  • commentaire

commentaire _ balises:

  • ITEM_ID
  • tag_id

balises table:

  • tag_id
  • tag_name

J'ai lu des modèles de mise en œuvre sur les liens en bas, mais suis coincé. Je peux insérer des tags sans problème.

Comment récupérer chaque balise qui a été utilisé et obtenir combien de fois il a été appliqué à un élément dans le commentaire _ balises de table?

http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html

SQL Query for Product-Tag relationship

+0

Je suis un peu confus sur votre terminologie et la désignation de vos tables - serait comment_tags en fait être mieux nommé items_tags? En outre, je pense que vous représentez une relation many-to-many - chaque tag appartient à de nombreux éléments, et chaque élément peut avoir plusieurs tags. – BrynJ

Répondre

1
SELECT t.tag_name, COUNT(*) 
FROM tags AS t 
    INNER JOIN comment_tags AS c_t ON c_t.tag_id = t.tag_id 
GROUP BY c_t.tag_id 
ORDER BY t.tag_name; 
0

pas les noms corrects, mais la plupart du temps correct Syntex

select TagName, count(TagName) 
from TagTable 
group by TagName 
Questions connexes