---
title: "Hämta senast ändrad sida i wiki"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/100279-hämta-senast-ändrad-sida-i-wiki"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Pace"
published: "2004-03-25T13:36:23.000Z"
updated: "2004-03-28T21:52:48.000Z"
replies: 6
views: 333
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/100279-hämta-senast-ändrad-sida-i-wiki"
---

# Hämta senast ändrad sida i wiki

## #1 — Pace, 2004-03-25T13:36Z

Jag har en liten wiki där jag behöver få fram den senast ändrade  sidan. Varje wikisida är kopplad till en viss version. Såhär ser datastrukturen ut (generellt):

```
[b]wikipages[/b]
pageid - int(5) auto_increment
title - varchar(75)

[b]wikirevisions[/b]
revisionid - int(5) auto_increment
pageid - int(5)
content - mediumtext
postdate - datetime
```

wikipages.pageid är kopplad med wikirevisions.pageid.

När man exempelvis går in på sidan "Startsida" (wikipages.title = 'Startsida'), körs därefter en extra sql-fråga som hämtar senaste versionen (postdate DESC) från wikirevisions som innehåller den senaste versionen av sidan.

Jag har försökt med något i stil med nedanstående fråga för att hämta en enkel lista över senast ändrade sidor, men det fungerar ju icke.

```
SELECT
   title, postdate
FROM
   wikipages
INNER JOIN wikirevisions ON
   wikirevisions.pageid = wikipages.pageid
GROUP BY
   wikirevisions.pageid
ORDER BY
   postdate DESC
```

Eller kanske det är så att jag måste skapa ett extra fält (wikipages.revisionid) där jag lagrar *vilken* version som är den aktuella?

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

## #2 — LarsG, 2004-03-25T13:47Z

```
select title, hwpr.content
from wikipages wp join wikirevisions lwpr on wp.pageid = lwpr.pageid
join wikirevisions hwpr on lwpr.pageid = hwpr.pageid     
and lwpr.postdate < hwpr.postdate
group by title, hwpr.content
having count(*) = 1
```

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

## #3 — Pace, 2004-03-25T13:59Z

Perfekt, tack så mycket LarsG! :)

En liten korrigering dock:

```
select title, hwpr.content
from wikipages wp join wikirevisions lwpr on wp.pageid = lwpr.pageid
join wikirevisions hwpr on lwpr.pageid = hwpr.pageid     
and lwpr.postdate <[u][b][red]=[/red][/b][/u] hwpr.postdate
group by title, [u]lwpr[/u].content
having count(*) = 1
```

Annars visas inte de sidor som enbart har en (1) version.

r) Ytterligare korrigering inlagd (hwpr --\> lwpr).

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

## #4 — LarsG, 2004-03-28T16:33Z

Kan det där verkligen fungera om det finns mer än två revisioner?

Nej, det gör det inte.

```
select title, lwpr.content, lwpr.revisionid, lwpr.postdate 
   from wikipages wp join wikirevisions lwpr 
  on wp.pageid = lwpr.pageid
   join wikirevisions hwpr 
   on lwpr.pageid = hwpr.pageid 
group by title, lwpr.content, lwpr.revisionid, lwpr.postdate 
having lwpr.postdate = max(hwpr.postdate)
```

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

## #5 — Pace, 2004-03-28T19:01Z

Jo, det fungerade utmärkt (med lite modifikation). :e

```
SELECT
   title, hwpr.postdate, hwpr.changes, name
FROM
   wiki_pages wp
JOIN
   wiki_pagerevisions lwpr ON wp.pageid = lwpr.pageid
JOIN
   wiki_pagerevisions hwpr ON lwpr.pageid = hwpr.pageid AND lwpr.postdate [red]<=[/red] hwpr.postdate
INNER JOIN
   users ON users.userid = hwpr.userid
GROUP BY
   title, lwpr.[red]postdate[/red]
HAVING COUNT(*) = 1
ORDER BY
   [red]postdate DESC[/red]
LIMIT 20
```

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

## #6 — LarsG, 2004-03-28T20:43Z

Nej, eftersom din group by är helt fel så är det faktiskt slumpmässigt vilka värden du får i changes. 

Det är bara Mysql som godkänner den frågan.

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

## #7 — Pace, 2004-03-28T21:52Z

> **LarsG skrev:**
>
> Nej, eftersom din group by är helt fel så är det faktiskt slumpmässigt vilka värden du får i changes.

 

Okej, på vilket sätt då? Menar du för att jag grupperar med ett datumfält?

> **LarsG skrev:**
>
> Det är bara Mysql som godkänner den frågan.

Jo, det är jag införstådd med. MySql är det som används så det är inga problem.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/100279-hämta-senast-ändrad-sida-i-wiki
