以下は私のテーブル、boardという名前です。MySQL - このようにCOUNT、GROUP BY、JOINを使用できますか?
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
このテーブルには、記事と返信の2種類のデータが格納されています。
返信タイプのみがarticle_idを持ちます。記事タイプはarticle_idにヌル値のみを持ちます。
私がしたいことは次のとおりです。
1.各記事の回答数を数えます。
2. 1.
の上位5品の情報(タイトルや内容)を取得します私はこのような1を数えることができます。
今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 |
+------------+-------+
、私はトップ5の記事IDを知っています。
しかし、これらのIDを使用して記事の情報をどのように入手できるかはわかりません。
私は検索して、結合機能があることを発見しましたが、私は同じテーブルのために使用できますか?
私が期待した結果がこれです:
+------------+-------+-------+---------+
| article_id | count | title | content |
+------------+-------+-------+---------+
| 12 | 7 | | |
| 3 | 5 | | |
| 6 | 3 | | |
| 11 | 2 | | |
| 1 | 1 | | |
+------------+-------+-------+---------+
それとも私はいくつかの他の方法を見つける必要がありますか?
ありがとうございます。それは素晴らしい作品です! – KimNR