---
title: "Flest kommentarer/forumposter."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/142830-flest-kommentarer-forumposter"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Ekström"
published: "2006-02-21T22:16:55.000Z"
updated: "2006-02-22T20:32:02.000Z"
replies: 7
views: 302
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/142830-flest-kommentarer-forumposter"
---

# Flest kommentarer/forumposter.

## #1 — Ekström, 2006-02-21T22:16Z

Hej!

Jag använder följande kod för att få fram vilka fem i mitt forum som postat flest inlägg: 

```
sql = "select f1.thread_author_id, count(*) as cnt from  forum_threads
f1 inner join forum_threads f2 on f1.thread_reply_id = f2.thread_id where
f1.thread_deleted = 0 and f1.thread_adminforum = 0 group by
f1.thread_author_id order by count(*) desc limit 5"
```

Nu hade jag tänkt kombinera denna med antalet kommentarer i nyheter för att räkna ut vem som har flest kommentarer+inlägg.

För mig är det helt blankt. Jag använder MySQL och kommentarstabellen innehåller ett fält för användarens id, precis som forumtabellen.

Hoppas detta är enkelt :)

Permalänk: https://www.webforum.nu/p/142830

## #2 — Lizard King, 2006-02-22T17:42Z

Har ett liknande problem. LarsG, var håller du hus?

Permalänk: https://www.webforum.nu/p/1770704

## #3 — cyprys, 2006-02-22T19:21Z

Nu tycker jag iofs din tabellstruktur ser lite 'annorlunda' ut så jag kanske har missuppfattat något.

```
select 
	f1.thread_author_id, (count(f2.*) + count(n1.*)) as cnt 
from
	forum_threads f1, 
	forum_threads f2, 
	news_comments n1
where
	f1.thread_reply_id = f2.thread_id and
	f1.thread_deleted = 0 and
	f1.thread_adminforum = 0 and 
	f1.thread_author_id = n1.author_id
group by
	f1.thread_author_id
order by
	2 desc
limit 5
```

Permalänk: https://www.webforum.nu/p/1770751

## #4 — LarsG, 2006-02-22T19:55Z

```
select 	f1.thread_author_id, 
        (select count(*) 
           from news_comment n1
          where f1.thread_author_id = n1.author_id) +
        count(*) as cnt
  from 	forum_threads f1, 
	forum_threads f2 
 where	f1.thread_reply_id = f2.thread_id 
   and  f1.thread_deleted = 0 
   and  f1.thread_adminforum = 0 
group by f1.thread_author_id
order by cnt desc
limit 5
```

Permalänk: https://www.webforum.nu/p/1770763

## #5 — Ekström, 2006-02-22T19:58Z

Saken är den att det inte är inte säkert att de som kommenterat nyheter också skrivit i forumet. Går det ens att lösa i en SQL-sats?

Permalänk: https://www.webforum.nu/p/1770765

## #6 — cyprys, 2006-02-22T20:05Z

Det var en av sakerna jag tyckte var konstig. Kan du inte bara vända påt och gruppera utifrån en användartabell och räkna raderna vars userid överenstämmer?

```
select t1.user_id, (count(t2.*) + count(t3.*)) as cmnt
from users t1, forum t2, news t3
where t1.id = t2.userId and t1.id = t3.userId
group by 1
order by cmnt desc
limit 1
```

B.t.w. är osäker att man kan gruppera två counts på det sättet jag gjort.

Permalänk: https://www.webforum.nu/p/1770770

## #7 — LarsG, 2006-02-22T20:17Z

Nej, count(t2.\*) kommer alltid att få samma värde som count(t3.\*). Du räknar totala antalet rader i resultatet i joinen grupperat per användare.

Permalänk: https://www.webforum.nu/p/1770777

## #8 — Ekström, 2006-02-22T20:32Z

Tack, LarsG. Löste det.

Permalänk: https://www.webforum.nu/p/1770780

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/142830-flest-kommentarer-forumposter
