webForumDet fria alternativet

två select, sorteringsprob

2 svar · 256 visningar · startad av laidback

laidbackMedlem sedan maj 2001797 inlägg
#1

(något tveksam till om detta borde ligga i sql-forumet, vänlig moderator får flytta isf)

Håller på att bygga om mitt forum. Ska hämta poster ur en tabell vilket idag ser ut så här ungefär:

Set RecSet = Databas.Execute("SELECT amne, skribent, datum, id, svar_id FROM k_inlagg WHERE forum_id="&Request.Querystring("id")&" and svar_id = 0 ")
		If NOT RecSet.EOF Then arrRecSet = RecSet.GetRows()
	RecSet.Close : Set RecSet = Nothing

En bit längre ner hämtar jag sedan samtliga poster som har svar_id = id dvs ett svar på ett orginalinlägg och visar datumet för det senaste svaret.

dSQL = "select TOP 1 svar_id, datum from k_inlagg where svar_id = " & id & " order by datum DESC"

Istället skulle jag vilja göra någon sorts (ehum, varning för vilda gissningar) subselect eller vad det nu kan tänkas heta. Jag vill alltså redan när jag hämtar alla poster kolla vilket datum det senaste svaret gjordes och sedan sortera utefter detta.
Någon som fattar vad jag menar och som kan hjälpa till?

Förvirrat? Förmodligen :r

LarsGMedlem sedan dec. 200012 464 inlägg
#2
SELECT amne, skribent, datum, id, svar_id ,
(select max(datum) 
   from k_inlagg
  where svar_id = q.id) as maxSvarsDatum
FROM k_inlagg  as q
WHERE forum_id = 4711 
and svar_id = 0

Med reservation för att jag har missförstått vad som är vad av dina kolumner.

Om man vill vara noga så är det en korrelerad skalär subselect som man gör.

Flyttas från ASP.

laidbackMedlem sedan maj 2001797 inlägg
#3

(Tillbaka efter diverse datortrubbel. )

Hm, det fungerar tyvärr inte så bra? Samtliga inlägg får id 0, samma senaste svarsdatum och helt galet antal svar. Förmodar att det har att göra med getrows-delen på något sätt?

133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)