Die unten ist einer meiner Tabelle, namens board.MySQL - Ist es möglich, COUNT, GROUP BY und JOIN so zu verwenden?
id int unsigned not null primary key auto_increment,
board_name varchar(10) not null,
type varchar(10) not null,
article_id int unsigned,
title varchar(255) not null,
content text not null
Und zwei Arten von Daten sind in dieser Tabelle, Artikel und Antwort gespeichert.
Nur Antworttyp hat eine article_id; Der Artikeltyp hat in der Artikel-ID nur einen Nullwert.
Was ich tun möchte, ist:
1. Zählen Sie die Anzahl der Antwort für jeden Artikel.
2. Holen info (Titel und Inhalt) der Top-5-Artikel des 1.
ich die 1 wie folgt zählen:
select article_id, count(*) as count from board
where article_id is not null group by article_id order by count desc limit 5;
+------------+-------+
| article_id | count |
+------------+-------+
| 12 | 7 |
| 3 | 5 |
| 6 | 3 |
| 11 | 2 |
| 1 | 1 |
+------------+-------+
Nun, ich kenne die Top-5-id Artikel.
Aber ich habe keine Ahnung, wie ich die Artikel-Informationen mit diesen IDs bekommen kann.
Ich suchte und fand, dass es eine Join-Funktion gibt, aber kann ich es für die gleiche Tabelle verwenden?
Das Ergebnis erwarte ich, ist dies:
+------------+-------+-------+---------+
| article_id | count | title | content |
+------------+-------+-------+---------+
| 12 | 7 | | |
| 3 | 5 | | |
| 6 | 3 | | |
| 11 | 2 | | |
| 1 | 1 | | |
+------------+-------+-------+---------+
Oder sollte ich einen anderen Weg finden?
Vielen Dank. Es funktioniert super! – KimNR