1

投稿数が最も多い5つのスレッドを表示したいのですが、ちょっと壊れていて、その方法を想像することさえできません

SQLテーブルはこのようなものです。もちろんこれは単なる例です

id | thread | subject | body
________________________________________________________
1  | NULL   | Thread1 | this is the body of the first thread id1
2  | 1      | NULL    | post id2 in the first thread id1
3  | NULL   | Thread2 | this is the body of the 2nd thread id3
4  | 2      | NULL    | post id4 in the second thread id4
5  | 2      | NULL    | post id4 in the second thread id5
6  | NULL   | Thread3 | this is the body of the 3rd thread id6
7  | 6      | NULL    | post id4 in the third thread id7
8  | 6      | NULL    | post id4 in the third thread id8
9  | 6      | NULL    | post id4 in the third thread id9

こんな結果になりたい

thread3
thread2
thread1

別のクエリを実行する必要がありますか?、1 つだけではなく 2 つを意味します。どのように?

4

1 に答える 1

3

メインスレッド行を結合の最初の側に、ポスト行を反対側に配置して、テーブルをそれ自体に結合する必要があります。

select t1.subject
from mytable t1
join mytable t2 on t2.thread = t1.id
where t1.thread is null
group by 1
order by count(*) desc
limit 5
于 2013-08-25T22:08:31.510 に答える