---
title: "Problem med sotering"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/130516-problem-med-sotering"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "greyhound"
published: "2005-06-24T10:20:25.000Z"
updated: "2005-06-24T18:01:53.000Z"
replies: 2
views: 263
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/130516-problem-med-sotering"
---

# Problem med sotering

## #1 — greyhound, 2005-06-24T10:20Z

Jag har följade SQL:

```
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, F.F_Hidden AS T_Hidden, Users.U_Nickname AS T_Nickname,
Users.U_Fornamn AS T_Fornamn, Users.U_Efternamn AS T_Efternamn, (
  SELECT count( * )
  FROM frmPosts
  WHERE F_Reply = F.F_Id
) AS T_Replies
FROM frmPosts AS F
LEFT JOIN Users ON F.F_Owner = Users.U_Id
WHERE F.F_Reply =0
ORDER BY (
  SELECT F_Date
  FROM frmPosts
  WHERE F_Reply = F.F_Id
  ORDER BY F_Date DESC
  LIMIT 1
) DESC
```

Den funkar ganska bra. Den räknar ut hur många svar varje tråd i ett forum har fått. Den soterar också trådarna efter nyast svar.

Mitt problem: Trådar utan svar kommer sist. Hur får man in så att dessa trådar sorteras in rätt också?

/Edit: mySQL är det som det handlar om :)

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

## #2 — greyhound, 2005-06-24T17:03Z

Håller på och testar med UNION.

Nya frågan ser ut såhär:

```
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,
       F.F_Hidden AS T_Hidden,
       Users.U_Nickname AS T_Nickname,
       Users.U_Fornamn AS T_Fornamn,
       Users.U_Efternamn AS T_Efternamn,
       (
         SELECT count( * )
         FROM frmPosts AS tmpTable3
         WHERE F_Reply = F.F_Id
       ) AS T_Replies
       FROM frmPosts AS F
       LEFT JOIN Users ON F.F_Owner = Users.U_Id
       WHERE F.F_Reply =0
       ORDER BY (
         (
           SELECT F_Date
           FROM frmPosts AS tmpTable1
           WHERE F_Reply = F.F_Id
         ) UNION (
           SELECT F_Date
           FROM frmPosts AS tmpTable2
           WHERE F_Id = F.F_Id
         ) ORDER BY F_Date DESC LIMIT 1
       ) DESC
```

Med får bara följande fel:

```
#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
'UNION (SELECT F_Date FROM frmPosts AS tmpTable2' at line 22
```

Båda frågorna går bra om man kör dom var för sig.

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

## #3 — greyhound, 2005-06-24T18:01Z

Egentligen så var det grymt enkelt ;)

Skippade Union och körde med "OR" bara ;)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/130516-problem-med-sotering
