WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   SQL fråga 1 (https://www.wn.se/forum/showthread.php?t=11214)

alexut 2005-12-06 18:49

Hej!

Nu vill jag sätta in slashdot kommentarerna i mitt galleri program.

Table ser ut såhär:

Kod:

id | subject    | date        | in_reply_to |
+----+------------------+---------------------+-------------+
| 1 | Original    | 0000-00-00 00:00:00 |    NULL
| 2 | Another original | 0000-00-00 00:00:01 |    NULL
| 3 | Reply to 1    | 0000-00-00 00:00:02 |      1
| 4 | Reply to 1-2  | 0000-00-00 00:00:05 |      1

Kommandot jag kör är:

Kod:

select id,subject,date,in_reply_to from blog_comments WHERE blog_id = 1 ORDER BY in_reply_to, date;
det jag vill få fram är:

Kod:

id | subject    | date        | in_reply_to |
+----+------------------+---------------------+-------------+
| 1 | Original    | 0000-00-00 00:00:00 |    NULL
| 3 | Reply to 1    | 0000-00-00 00:00:02 |      1
| 4 | Reply to 1-2  | 0000-00-00 00:00:05 |      1
| 2 | Another original | 0000-00-00 00:00:01 |    NULL

Det jag vill göra är alltså ordna alla kommentarer efter enligt datum, därefter gruppera de efter "in_reply_to" i ett i en SQL fråga.

Går detta ?

Tack på förhand

eg0master 2005-12-06 20:00

Kod:

select id,subject,date,isnull(in_reply_to,id) AS irt
from blog_comments
WHERE blog_id = 1
ORDER BY irt, date;

Borde lösa det. Notera att isnull kan heta ifnull eller coalesce (sic) beroende på databas.

alexut 2005-12-06 20:43

great! det funkar utmärkt!

Nu ska jag bara klura ut hur jag ska få "original post" att sorteras efter datum.

Tack än en eg0master :)

eg0master 2005-12-06 22:14

Kod:

select c.id AS id,c.subject AS subject,c.date AS date,isnull(c.in_reply_to,id) AS irt, od.date AS org_date
from blogcomments c, blogcomments od
where isnull(c.in_reply_to, c.id) = od.id
and c.blog_id = 1
ORDER BY od.date, c.date



Alla tider är GMT +2. Klockan är nu 21:13.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson