webForumDet fria alternativet

Self join (igen)

25 svar · 422 visningar · startad av Vide · sida 2 av 2

LarsGMedlem sedan dec. 200012 465 inlägg
#21
select f.id,f.subject,f.userid,f.hostid,max(f.datetime) from posts f
  where f.forumid = 1
  group by f.id,f.subject,f.userid,f.hostid
 order by 5

Otestat ... ???

red: Du kan glömma detta

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 19 dec 2001]

LarsGMedlem sedan dec. 200012 465 inlägg
#22

Jag tycker att din datamodell är lite skev. Borde du inte dela upp det i två tabeller? En som innehåller ämne och esom innehåller inlägg och svar.

------------------
essentitia preter non sans multiplicandum

VideMedlem sedan dec. 19996 094 inlägg
#23

Möjligt att den är lite skev, men hur hjälper det att dela upp det i två tabeller?

------------------
Mostly Harmless

spangoMedlem sedan juni 20006 147 inlägg
#24

Hm... jag gjorde en sån här grej för ett tag sedan, och använde en SQL-snutt i stil med den här (tagen direkt från huvudet, extremt otestad):

SELECT ancestor.id AS id, ancestor.hostid AS hostid, ancestor.datetime AS datetime, MAX(descendant.datetime) AS latest_answer
FROM posts ancestor, posts descendant
WHERE ancestor.id IN (descendant.id, descendant.hostid) AND ancestor.id = 0
GROUP BY 1, 2, 3
ORDER BY 4

Kan dock ställa till problem eftersom bara de direkta "barnen" till första posten i tråden räknas, och inte deras barn... klurigt...

------------------
Vaddå HTLM design? Jag e UTVECKLARE för fan! /mrblonde

VideMedlem sedan dec. 19996 094 inlägg
#25

spango, efter lite pysslande med den SQL-satsen så fick jag äntligen till det... tackar då mycket... Tack till alla som hjälpte till, jag börjar nu fatta lite mer... ;)

Koden blev denna:

select f.Id, f.subject, f.userid, f.datetime, max(q.datetime) from posts as f, posts as q where f.id in( q.hostid, q.id ) and f.hostid = 0 and f.forumid = 1 group by f.id, f.subject, f.userid, f.datetime order by 5 desc

------------------
Mostly Harmless

LaspMedlem sedan juli 200010 197 inlägg
#26

En perfekt tråd
Ett problem. Ett antal svar. En verifiering (med kodsnutt)Problemet löst.
Hur kan man hitta denna senare?
Vilka är nyckelorden om man skulle ha en Db med frågor och svar!
Eller en sökbar trädstruktur.
Vill gärna ha tillgång till sånt.
Har inte fast uppkoppling så en CD skulle sitta fint.

------------------
GvdsSfdtTddv.

Genererad på 369 ms · cache AV · v20260730165559-full.f96bc7eb