---
title: "Räkna antal svar i forum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/21869-räkna-antal-svar-i-forum"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "NETwork"
published: "2002-01-06T20:09:00.000Z"
updated: "2002-01-07T12:02:00.000Z"
replies: 3
views: 245
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/21869-räkna-antal-svar-i-forum"
---

# Räkna antal svar i forum

## #1 — NETwork, 2002-01-06T20:09Z

Jag har gjort ett forum som bygger på två tabeller. Det fungerar fint, men jag har inte lyckats klura ut hur jag ska göra för att räkna antal svar i en tråd.

Tabellerna ser ut så här

Forum:
\- ForumID
\- Topic
\- Name
\- Date

Thread:
\- ThreadID
\- ForumID
\- Name
\- Message
\- Date

När jag fyller förstasidan på forumet så behöver jag alltså på något sätt hämta hur många ThreadID det finns i tabellen Thread för varje ForumID. Har förstått att man ska göra en join men fattar inte riktigt hur.

Nån som kan hjälpa mig?

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

## #2 — LarsG, 2002-01-06T20:15Z

```
select count(threadid) as antal, topic from forum f left outer join thread t on f.forumid = t.forumid group by topic
```

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

## #3 — NETwork, 2002-01-07T11:49Z

Tack! Om du orkar så får du väldigt gärna förklara lite hur det fungerar. :)

```
count(threadid) as antal
```

Här räknar du alla threadid och lägger värdet i variabeln (säger man variabel i sql?) "antal", eller? Alltså det totala antalet inlägg i hela forumet?

```
forum f
```

Du byter bara namn på forum till f?

```
forum f left outer join thread t on f.forumid = t.forumid group by topic
```

Här hängde jag inte med riktigt... vad gör en left outer join? Och hur lagras antal svar för varje tråd?

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

## #4 — LarsG, 2002-01-07T12:02Z

> count(threadid) as antal

Det här är bara för att namnge fältet, så man kan inte tala om en variabel i detta sammanhang.

> forum f

ja, namnbytet är mest en bekvämlighet. I vissa fall, om man har samma tabell flera gånger, så måste man använda denna teknik för att kunna särskilja olika instanser.

> forum f left outer join thread t on f.forumid = t.forumid group by topic

en left outer join innebär att man tar med alla poster i den vänstra tabellen oavsett om det finns ett matchande värde i tabellen thread eller inte. Om det inte finns någon match så blir de kolumner som skulle hämtats från tabellen thread ersatta med null. Det är därför jag använder columnnamnet i count ovan. 

count(columnnamn) innebär att man inte tar med de värden som är null i räkningen. På så sätt blir det 0 på de ämnen som inte har något svar.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/21869-räkna-antal-svar-i-forum
