2

我有一張博客帖子和一張標籤表格,它們之間有多對多的關係。SQL查詢:如何計算多對多關係的頻率?

如何提取博客帖子的子集中最頻繁的標籤? (例如僅去年的那些) 有沒有辦法提取與blogposts子集關聯的所有標籤的頻率?

感謝

編輯:我的架構:

CREATE TABLE `tag` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, 
    `name` varchar(200) NOT NULL, 
    `access` varchar(1), 
    `linked_created` datetime 
) 
; 

CREATE TABLE `blogpost_tags` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, 
    `blogpost_id` integer NOT NULL, 
    `tag_id` integer NOT NULL, 
    UNIQUE (`blogpost_id`, `tag_id`) 
) 
; 

CREATE TABLE `blogpost` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, 
    `title` varchar(50), 
    `body` varchar(500) 
) 
; 
+0

你應該告訴我們你的餐桌設計(甚至更好,一個小桌子設計來準確地說明問題)。有了它,我們可以幫助更輕鬆(即沒有太多猜測)。 – 2010-08-31 21:26:22

+0

你能提供一些樣本數據和預期的輸出嗎? – Thomas 2010-08-31 22:05:15

回答

2

(現在的模式已經提供,打消了我的樣本模式和剛剛發佈的查詢)

Select T.name, Count(*) As UseCount 
From Tag As T 
    Join BlogPost_Tag As BPT 
     On BPT.tag_Id = T.Id 
    Join BlogPost As BP 
     On BP.Id = BPT.blogpost_id 
Where BP.Title Like '...' 
Group By T.name