---
title: "Hjälp med SQL query!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/22204-hjälp-med-sql-query"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "JE"
published: "2001-09-05T08:31:00.000Z"
updated: "2001-09-05T09:17:00.000Z"
replies: 3
views: 181
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/22204-hjälp-med-sql-query"
---

# Hjälp med SQL query!

## #1 — JE, 2001-09-05T08:31Z

Håller på med ett litet forum. Har strukturerat upp det på följande sett:

1: Sektioner
2: Forums
3: Trådar
4: Inlägg

Dvs, under en sektion finns det olika forums och under varje forum finns olika trådar osv..

Nu tänkte jag lista alla sektioner på en sidan och samtidigt lista alla forum för varje sektion med antalet trådar och antalet inlägg.

SQL strängen ser ut så här:

```
SELECT F_ForumID, F_Name, (SELECT COUNT(FT_ThreadID) as ThreadCnt FROM ForumThreads WHERE FT_ForumID=F_ForumID) as F_Threads, (SELECT COUNT(FP_PostID) as PostCnt FROM ForumPosts WHERE FP_ThreadID=FT_ThreadID) as F_Posts WHERE F_Active='Y' AND F_Visible='Y' AND F_AreaID=2
```

Felmeddelandet jag får:
MySQL said:  You have an error in your SQL syntax near 'SELECT COUNT(FT_ThreadID) as ThreadCnt FROM ForumThreads WHERE FT_ForumID=F_Foru' at line 1

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

## #2 — LarsG, 2001-09-05T08:43Z

Mysql tillåter inte att man har select-satser direkt i kolumn-listan.

Du får nog skriva om det och använda group by och eventuellt dela upp det i olika sql-satser. (Det kan gå att lösa med outer join och count (distinct \*))

Ett alternativ är att du lagrar information om antal trådar och inlägg direkt i respektive tabell.

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

## #3 — JE, 2001-09-05T09:12Z

Ändrade SQL strängen till denna:

```
SELECT F_ForumID, F_Name, COUNT(FT_ThreadID) as F_Threads, COUNT(FP_PostID) as F_Posts, MAX(FP_PostDate) as F_LastPost FROM ForumAreas INNER JOIN Forums ON ForumAreas.FA_AreaID=Forums.F_AreaID INNER JOIN ForumThreads ON Forums.F_ForumID=ForumThreads.FT_ForumID INNER JOIN ForumPosts ON ForumThreads.FT_ThreadID=FP_ThreadID WHERE F_Active='Y' AND F_Visible='Y' AND F_AreaID=2
```

Nu blir felet:
MySQL said:  Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause 

Inte använt Group tidigare, hur funkar det? Hur ska jag skriva SQL strängen?

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

## #4 — LarsG, 2001-09-05T09:17Z

```
SELECT F_ForumID, F_Name, COUNT(distinct FT_ThreadID) as F_Threads, COUNT(FP_PostID) as F_Posts, MAX(FP_PostDate) as F_LastPost FROM ForumAreas INNER JOIN Forums ON ForumAreas.FA_AreaID=Forums.F_AreaID INNER JOIN ForumThreads ON Forums.F_ForumID=ForumThreads.FT_ForumID INNER JOIN ForumPosts ON ForumThreads.FT_ThreadID=FP_ThreadID WHERE F_Active='Y' AND F_Visible='Y' AND F_AreaID=2 group by F_ForumID, F_Name
```

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/22204-hjälp-med-sql-query
