webForumDet fria alternativet

markera senaste datumet?

7 svar · 577 visningar · startad av voigtann1

voigtann1Medlem sedan juni 20019 519 inlägg
#1

Använder en Access Databas och den ser ut:

ID - Räknare
Forum_id - tal
skribent - tal
datum - datum/tid
inlagg - pm
svar_ID - tal (om det är en "ny tråd" så ska den ha samma värde som ID)

jag vill hitta det högsta senaste svaret i varje tråd som skapas:

SELECT id, forum_id,skribent, senastDatum
FROM inlagg
OUTER JOIN
(Select top(datum) from inlagg as t WHERE  t.svar_id = inlagg.id) as senastDatum ;

Vad gör jag fel? vad tänker jag fel på? :D

@ndersMedlem sedan juni 200032 969 inlägg
#2

Jag hade nog försökt mig på något sånt här:

SELECT i.id, i.forum_id, i.skribent, 
   (Select [b]max[/b](datum) from inlagg as t WHERE  t.svar_id = i.id) as senastDatum
FROM inlagg as i
voigtann1Medlem sedan juni 20019 519 inlägg
#3

kanske en group by också? provade din och då kommer även "svaren" listas men utan något datum

Den fungera till en viss nivå med... jag skulle även vilja ha senaste skribent också.. och vem som "skapade" den... och då tror jag att man måste ha en outer join?

@ndersMedlem sedan juni 200032 969 inlägg
#4

Ok, då får du öva på din frågeställning. Jag förstod det som att du ville ha ut datumet för senaste svaret. Att även svaren kommer med får du ju fixa med en WHERE-sats. Jag utelämnade den, för det trodde jag du kunde få dit själv.

Vad menar du med "högsta senaste svaret"?

Jag tror nog också att du kan få lite hjälp om du suger lite på sökfunktionen. Du är inte den förste som velat göra detta i ett forum. ;)

voigtann1Medlem sedan juni 20019 519 inlägg
#5

jo... sökning :D sökte runt lite och det verkar vara extremt avancerat att göra :D

hittade:
http://www.webforum.nu/showthread.php?t=102214&highlight=senaste+svar

vet inte om det är direkt det jag är ute efter men det "känns" som det är det :D

har svårt med hur inner Joinen ska se ut...

SELECT p.pTopic, u.uName as Creater
FROM tblUser as u 
LEFT JOIN
(select max(s.datum),s.pUser from tblpost as s...

WHERE u.pForum = 1;

vet inte riktigt hur man ska skriva det :r

bifoga en bild på min databas

sql_tes.gif
voigtann1Medlem sedan juni 20019 519 inlägg
#6
SELECT
p.pTopic,
u.uName as threadCreater,
p.pDate as ThreadStarted

from
tbluser u,
tblpost p

Where
u.uID = p.pUser and
p.pforum=1 and
p.pDate in
(select max(pDate)
        from tblpost
      where tblpost.pAnswer = p.pAnswer)

Nu listas "De senaste" svaren... nästan iallafall.. får datumen att stämma och användaren som gjorde svaret... men "topicen" och "trådskaparens" namn vill jag ändå ha också...

voigtann1Medlem sedan juni 20019 519 inlägg
#7
SELECT p.pAnswer,u.uName AS LatestUserAnswer, p.pDate AS LatestAnswer, (SELECT count(*) from tblpost where tblpost.pAnswer = p.pAnswer)-1 as antal,(SELECT ptopic from tblpost where pid = p.panswer) as orginalTopic,(SELECT tblUser.uName from tblpost,tblUser where tblpost.pid = p.panswer AND tblpost.pUser = tblUser.uID ) as trådskapare
FROM tbluser AS u, tblpost AS p
WHERE u.uID = p.pUser and
p.pforum=1 and
p.pDate in
(select max(pDate)
        from tblpost
      where tblpost.pAnswer = p.pAnswer);

Så ser den ut när jag får ut allt det jag vill få ut... inte den bästa SQL frågan direkt men mina kunskaper är begränsade...

voigtann1Medlem sedan juni 20019 519 inlägg
#8

Borde man inte kunna få

(SELECT ptopic from tblpost where pid = p.panswer) as orginalTopic,
(SELECT tblUser.uName from tblpost,tblUser where tblpost.pid = p.panswer AND tblpost.pUser = tblUser.uID ) as trådskapare

att se bättre ut?

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