SQL-Abfrage: Wie Frequenz über eine many-to-many-Beziehung zählen?
-
26-09-2019 - |
Frage
Ich habe eine Tabelle für Blogeinträge und eine Tabelle für Variablen mit einer many-to-many-Beziehung zwischen ihnen.
Wie kann ich extrahieren Sie die am häufigsten Tag über eine Untergruppe von Blogeinträge? (Zum Beispiel nur diejenigen aus dem vergangenen Jahr) Gibt es eine Möglichkeit, die Frequenzen aller Tags mit den Blogeinträgen Teilmenge?
assoziiert zu extrahierenDanke
Edit: mein Schema:
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)
)
;
Lösung
(Nun, da Schema zur Verfügung gestellt hat, entfernt mein Beispielschema und nur die Abfrage geschrieben)
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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow