webForumDet fria alternativet
Logga in / Bli medlem

Self join (igen)

Databaser & SQL

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

Frågan, av Vide

Tjenare! /me och joinar är hopplösa... ;) Har ett forum där jag skall lista inläggen efter de som har senaste svar (och utan svar), men jag får inte till själva joinen. posts: Id HostId (0 om inlägget själv är 'host') DateTime Kan någon lära mig en gång för alla... :e

Läs frågan i sin helhet →
Medlem sedan dec. 200012 464 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

Medlem sedan dec. 200012 464 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.

Medlem sedan dec. 19998 577 inlägg
#23

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

Medlem sedan juni 20008 205 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...

Medlem sedan dec. 19998 577 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
Medlem sedan juli 200012 978 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.

262 ms totalt · 4 externa anrop · v20260731065814-full.05830320
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)