---
title: "Räkna svar"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/129885-räkna-svar"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "greyhound"
published: "2005-06-12T21:44:35.000Z"
updated: "2005-07-05T08:59:43.000Z"
replies: 13
views: 542
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/129885-räkna-svar"
---

# Räkna svar

## #1 — greyhound, 2005-06-12T21:44Z

Tjena

Jag håller på att göra ett litet forum, dock har jag lite problem nu. Jag har följande SQL:

```
SELECT frmPosts.F_Id as T_Id, frmPosts.F_Topic as T_Topic,
frmPosts.F_Views as T_Views, frmPosts.F_Date as T_Date,
Users.U_Nickname as T_Nickname, Users.U_Fornamn as
T_Fornamn, Users.U_Efternamn as T_Efternamn FROM
frmPosts LEFT JOIN Users ON frmPosts.F_Owner =
Users.U_Id WHERE F_Reply = 0 ORDER BY F_Date DESC
```

Den funkar bra. Men nu vill jag även lägga in en räknare i den frågan om det går. Tabellen **frmPosts** innehåller en kolumn som heter **F_Reply** och den visar om det är ett svar och i så fall vilken tråd det tillhör. Jag vill få in så att man får ut även den data ur den där frågan.

Går det att göra eller får jag göra en till fråga som jag kör efter?

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

## #2 — LarsG, 2005-06-13T08:34Z

```
SELECT F.F_Id as T_Id, 
       F.F_Topic as T_Topic,
       F.F_Views as T_Views, 
       F.F_Date as T_Date,
       Users.U_Nickname as T_Nickname, 
       Users.U_Fornamn as T_Fornamn, 
       Users.U_Efternamn as T_Efternamn ,
       (select count(*)
          from frmPosts
         where thread_id = F.thread_id
           and F_Reply = 1) as replies
FROM frmPosts F
LEFT JOIN Users ON frmPosts.F_Owner = Users.U_Id 
WHERE F_Reply = 0 
ORDER BY F_Date DESC
```

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

## #3 — greyhound, 2005-06-13T08:55Z

Saknas det ett "as" i raden "FROM frmPosts F" ??

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

## #4 — @nders, 2005-06-13T08:57Z

Nej, AS är valfritt.

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

## #5 — greyhound, 2005-06-13T09:06Z

Ok, men jag får inte frågan att funka.

Jag har ändrat den lite:

```
SELECT F.F_Id as T_Id,
F.F_Topic as T_Topic,
F.F_Views as T_Views,
F.F_Date as T_Date,
Users.U_Nickname as T_Nickname,
Users.U_Fornamn as T_Fornamn,
Users.U_Efternamn as T_Efternamn,
(SELECT count(*) FROM frmPosts
WHERE [B]F_Reply = F.F_Id[/B]) as T_Replies
FROM frmPosts [B]AS[/B] F
LEFT JOIN Users ON [B]F.[/B]F_Owner = Users.U_Id
WHERE [B]F.[/B]F_Reply = 0 ORDER BY [B]F.[/B]F_Date DESC
```

Men jag får bara felet: 

```
#1064 - You have an error in your SQL syntax.
Check the manual that corresponds to your MySQL
server version for the right syntax to use near
'SELECT count(*) FROM frmPosts
WHERE F_Reply = F.F_Id) as T_Rep
```

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

## #6 — greyhound, 2005-06-13T09:13Z

Båda frågorna funkar bra för sig själv.
Problemet uppstår när dom läggs ihop.

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

## #7 — @nders, 2005-06-13T09:16Z

Vilken version av MySQL använder du?

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

## #8 — greyhound, 2005-06-13T09:16Z

MySQL 4.0.24

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

## #9 — @nders, 2005-06-13T09:19Z

Har du möjlighet att uppgradera? 
MySQL stödjer subqueries från version 4.1.

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

## #10 — greyhound, 2005-06-13T09:20Z

Ok, ska titta på det. Tackar!

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

## #11 — @nders, 2005-06-13T09:22Z

Annars går det att lösa med att skriva om till joins, men det kan ju vara en bra idé att uppgradera ändå. :)

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

## #12 — greyhound, 2005-06-13T21:18Z

Har nu uppgraderat till mySQL 4.1.12
Nu funkar allt som det bör.
Tackar LarsG och @nders

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

## #13 — desdecado, 2005-07-05T08:39Z

Får jag sno denna tråd lite och bygga ut frågan lite? :)

Om man nu vill agregera informationen, alltså jag vill inte räkna ut den varje gång utan vill vid vissa tillfällen köra en sp som går igenom \_alla\_ trådar och räknar poster och dessa sparas i ett fält i tråd-tabellen, hur skriver man då?

typ som här (fast detta fungerar då inte riktigt...):

UPDATE thread 
SET thread_postcount = (SELECT COUNT(\*) FROM post p WHERE  p.post_threadpointer = thread_id)
WHERE thread_id = post_threadpointer

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

## #14 — LarsG, 2005-07-05T08:59Z

```
UPDATE thread
SET thread_postcount = (SELECT COUNT(*) FROM post p WHERE p.post_threadpointer = thread_id)
WHERE thread_id in(
select post_threadpointer
from post)
```

> Får jag sno denna tråd lite och bygga ut frågan lite?

Jag (och de som bevakar tråden) föredrar nog att du startar en ny tråd.

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

---

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