SQLクエリ:どのように多対多の関係上、周波数をカウントするには?
-
26-09-2019 - |
質問
私はそれらの間の多対多の関係で、ブログ記事のためのテーブルとタグのためのテーブルを持っています。
どのように私は、ブログ記事ののサブセットの間で最も頻度の高いタグを抽出することができますか? (例えば、唯一の昨年からのもの) サブセット?
ブログ記事に関連したすべてのタグの周波数を抽出する方法はありますおかげ
編集:私のスキーマます:
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)
)
;
解決
タグ(スキーマが提供されている今では、私のサンプル・スキーマを削除し、ちょうどクエリを掲載)
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
所属していません StackOverflow