---
title: "SQL-strul"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/91719-sql-strul"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "K@llen"
published: "2003-12-02T18:44:38.000Z"
updated: "2003-12-03T13:17:55.000Z"
replies: 3
views: 195
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/91719-sql-strul"
---

# SQL-strul

## #1 — K@llen, 2003-12-02T18:44Z

Hej,

Jag donar med en paging men får inte mina sql-frågor rätt. Följande sql-fråga hämtar posterna:

```
    $strSQL = "SELECT ft.topicId, ft.topicSubject, ft.topicUid, 
ft.forumId, ft.topicImportant, ft.topicClosed, ft.topicLastActive, 
ft.movedToForumId, ft.topicLastActiveUid, ft.topicLastActiveUsername, 
p.req_Username, COUNT(fp.topicId) as noOfAnswer   
    FROM forum_topic ft
    INNER JOIN forum_post fp
    ON ft.topicId = fp.topicId
    INNER JOIN Profil p
    ON ft.topicUid = p.AnvId
    WHERE ft.forumId = " . $_GET['fId'] . " 
    GROUP BY ft.topicId, ft.topicSubject, ft.topicUid, ft.forumId, 
ft.topicImportant, ft.topicClosed, ft.topicLastActive, 
ft.movedToForumId, ft.topicLastActiveUid, 
ft.topicLastActiveUsername, p.req_Username 
    ORDER BY ft.topicImportant DESC, ft.topicLastActive DESC 
 LIMIT " . $pager -> fromRecords . ", " . $pager -> maxPerPage . " ";
```

Sedan en separat count() för att se hur många poster det finns totalt:

```
$strSQL = "SELECT count(*) AS rows  
    FROM forum_topic ft 
    INNER JOIN forum_post fp 
    ON ft.topicId = fp.topicId 
    INNER JOIN Profil p 
    ON ft.topicUid = p.AnvId 
    WHERE ft.forumId = " . $_GET['fId'] . "";
```

Hur jag än utformar min count() får jag inte ut samma antal poster som om jag tar bort limit i första frågan. Hur ska min andra fråga se ut för att överensstämma med den första?

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

## #2 — LarsG, 2003-12-03T07:26Z

Lägg till den group by som finns i första frågan.

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

## #3 — K@llen, 2003-12-03T11:11Z

> **LarsG skrev:**
>
> Lägg till den group by som finns i första frågan.

Det har jag provat men jag får inte rätt antal poster ändå. :(

Den första frågan returnerar 447 poster

Counten ovan ger 2772 poster som svar. Lägger jag till group by får jag ut 5 poster som svar.

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

## #4 — K@llen, 2003-12-03T13:17Z

Jag hittade detta på mysql.com
<http://www.mysql.com/doc/en/GROUP-BY-hidden-fields.html>

Blev aldrig klok på vad de menar. Så jag förenklade istället och lagrade antal svar i en egen kolumn istället för att räkna svaren i sql-frågan. Nu får jag samma resultat. Frågorna blev till slut:

```
SELECT ft.topicId, ft.topicSubject, ft.topicUid, ft.forumId, 
ft.topicImportant, ft.topicClosed, ft.topicLastActive, ft.movedToForumId, ft.topicLastActiveUid, 
ft.topicLastActiveUsername, ft.noOfAnswer, p.req_Username    
FROM forum_topic ft
INNER JOIN Profil p
ON ft.topicUid = p.AnvId
WHERE ft.forumId = " . $_GET['fId'] . " 
ORDER BY ft.topicImportant DESC, ft.topicLastActive DESC

SELECT COUNT(*)  
FROM forum_topic ft
INNER JOIN Profil p
ON ft.topicUid = p.AnvId
WHERE ft.forumId = " . $_GET['fId'] . "
```

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/91719-sql-strul
