Jag håller på att bygga ett forum, och på sidan där jag listar alla huvudtrådar (ParentId = 0) vill jag alltså att dom skall listas ut efter det inlägg med det senaste svaret.
Jag har testat en jäkla massa kombinationer på Selects med subquerys utan framgång...
Jag skulle ju kunna lösa det på andra sätt än i SQLsträngen, det känns väldigt onödigt och mer resurskrävande än att ta det direkt ur SQLen...
Nuvarande SQLsträng:
strSQL = "SELECT * FROM tblMessages WHERE tblMessages.ForumID = "
strSQL = strSQL & forumid & " AND tblMessages.ParentMessageID = 0 "
strSQL = strSQL & "AND tblMessages.Subject <> ''"
strSQL = strSQL & " ORDER BY Dateofpost DESC"
Mvh, vide
------------------ Nu har du sjungit på sista refrängen Jourhavande Vide
Ojdå, det funkade ju nästan jättebra... du är en klippa @nders :)
Dock ett litet fel... Nu listas alla inlägg som har svar (i rätt ordning), men inlägg som inte har något svar kommer inte med... Och jag har aldrig hålt på med self-join förut så jag fattar inte hur man skall lösa det på ett bra sätt... :)
Mvh, Vide
------------------ Nu har du sjungit på sista refrängen Jourhavande Vide
Sorry @nders, jag måste göra dig besviken... mina kunskaper i Joins är inte speciellt bra ännu... även om jag fattar lite om hur det går till, så kan jag inte förstå hur detta skall gå ihop... :(
------------------ Nu har du sjungit på sista refrängen Jourhavande Vide
strSQL = "select a.* from tblMessages as a left outer join tblMessages as b "
strSQL = strSQL & "on a.forumid = " & forumid & " and a.MessageID = b.ParentMessageID and a.ParentMessageID = 0 "
strSQL = strSQL & "order by b.Dateofpost desc"
En left outer join tar alla rader i vänstra tabellen (som uppfyller villkoren). Om det inte finns någon match i den högra så fylls det i med null i de kolumner som kommer från den tabellen, annars fungerar det som en vanlig join.
------------------ essentitia preter non sans multiplicandum
Jag glömde att berätta att mitt forum är trådat och därav gör jag ju en rekursiv sökning. Så sökningen funkar bra, enda felet är att den reknar bara det senaste inlägget ett i djup. Sedan tar den ju alla inlägg (inte bara parent = 0) skumt nog... nu blir jag bara mer förvirrad... ;)
Skall jag bygga om databasen så att jag har ett "mother"-fält, så jag lägger in det absolut första inläggets id i tråden?
Eller?
Mvh, Vide
------------------ Nu har du sjungit på sista refrängen Jourhavande Vide