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 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
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 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. ;)
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
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å...
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...
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?