Just nu i M3-nätverket
Jump to content

Sortering


The Tor

Recommended Posts

Jag har en databas (MySQL) som ser ut så här:

Tråd -- Titel ------ Datum
-----------------------------
1 --- Äpple ------ 2002-03-11
2 --- Banan ------ 2002-03-12
2 --- SV: Banan -- 2002-03-13
3 --- Morot ------ 2002-03-09
3 --- SV: Morot -- 2002-03-10
3 --- SV: Morot -- 2002-03-14

Jag vill få det här resultatet:

Morot (02-03-14)

Banan (02-03-13)

Äpple (02-03-11)

 

Jag vill alltså sortera efter den tid då senaste posten lades in.

[inlägget ändrat 2002-03-26 13:07:05 av Tor Lindqvist]

Link to comment
Share on other sites

Nja... Då får jag det här resultatet:

 

SV2: Morot (02-03-12)

SV: Äppel (02-03-11)

SV: Banan (02-03-10)

Banan (02-03-09)

Äpple (02-03-08)

Morot (02-03-07)

 

 

Link to comment
Share on other sites

Olle Nyrén

Med designen som finns blir frågan väldigt komplicerad eftersom du vill ha titeln för det tidigaste och datumet för det senaste inlägget i tråden. Det blir nog enklare om du lagrar trådarna med originaltitel och senaste uppdateringsdatum i en egen tabell och låter inläggen ha en koppling till denna tabell. Så här tänker jag mig:

 

Tråd Originaltitel UppdateradDatum

----------------------------------

1 Äpple 2002-03-11

2 Banan 2002-03-13

3 Morot 2002-03-14

 

Inlägg Titel Datum Tråd

-----------------------

1 Morot 2002-03-09 3

2 SV:Morot 2002-03-10 3

3 Äpple 2002-03-11 1

4 Banan 2002-03-12 2

5 SV:Banan 2002-03-13 2

6 SV:Morot 2002-03-14 3

 

 

Link to comment
Share on other sites

Det här en "ful" variant:

 

SELECT Tråd, MIN(Titel) AS myTitel, MAX(Datum) AS myDatum

FROM Tabell

GROUP BY Tråd

ORDER BY MAX(Datum) DESC

 

 

____Robbac_____________________________________

The Truth Is Out there

 

Link to comment
Share on other sites

Jag ändrade till det här:

SELECT Tråd, MIN(Titel) AS myTitel, MAX(Datum) AS myDatum

FROM Tabell

GROUP BY Tråd

ORDER BY myDatum DESC

 

Men det funkar inte om jag lägger till fler poster i databasen. :-(

 

 

[inlägget ändrat 2002-03-26 15:23:10 av Tor Lindqvist]

Link to comment
Share on other sites

Hmm, det borde helt klart fungera i vilket fall som helst...

 

Ända gången när det inte kommer fungera är när någon senare titel är kortare än orginaltiteln.

 

 

____Robbac_____________________________________

The Truth Is Out there

 

Link to comment
Share on other sites

Funkar och funkar. Fel och fel...

 

Om jag lägger till den här posten i databasen:

1 -- SV: Äpple -- 02-03-15

 

Så blir resultatet:

 

SV: Äpple (senaste inlägg 02-03-15)

Morot (senaste inlägg 02-03-14)

Banan (senaste inlägg 02-03-13)

 

;)

 

[inlägget ändrat 2002-03-26 15:57:38 av Tor Lindqvist]

Link to comment
Share on other sites

Tomas Nilsson

Det mesta går att lösa med Subqueries (även om det inte är smart sett ur en prestandasynvinkel ;)

 

select *

from table

inner join

(

select max(Datum) as datum, thread

group by thread

) as a on a.datum = table.datum and a.thread = table.thread

order by table.datum desc

 

/Tomas

 

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...