Ett enkelt forum, två tabeller. Du kan inte slå ihop dem så här då? Titta i [Hjälp med sortering av inlägg i mitt forum...], där har du den funktionen och LITE till ;) Här är ett förslag från mig. Jag skulle spara en fråga i din databas. Vilket skulle göra frågan mindre komplex. Tack alla. Jag valde Jannes lösning med lite modifikation från inlägg:65717.. Konstigt jag inte hittade det inlägget när jag sökte i forumet.Dessa joins...
tbl_forumtopic samlar alla trådrubriker. tbl_forumthread samlar alla inlägg från trådrubbarna. Databasen är en Access 2000
tbl_forumtopic har dessa kolumner: Topic_ID, Forum_ID, Subject, startdatum, antal_svar, start_member
tbl_forumthread har dessa kolumner: Id, topic_ID, forum_ID, member_Name, meddelande, datum
Jag vill på sidan som nu visar endast trådrubrikerna kunna sortera enligt senaste inlägget i tbl_forumthread.
SQL satsen just nu ser ut så här:
<code>
strSQL = "SELECT * FROM tbl_forumtopic WHERE forum_ID = " & strForum &" ORDER by startdatum DESC"
</code>
Har läst om Joins så ögonen trillar ut men jag får inte till det. På ren svenska: Snälla SQL. Visa alla trådrubriker men visa den rubrik som senast fått ett inlägg längst upp.
Mitt hår vore hemskt tacksam för svar...och jag med.Sv: Dessa joins...
<code>strSQL = "SELECT * FROM tbl_forumtopic to, tbl_forumthread th WHERE forum_ID = " & strForum &" ORDER by startdatum DESC"</code>Sv: Dessa joins...
/JohanSv: Dessa joins...
Först vill jag råda dig, om du inte har speciella skäl till det, att inte spara värdet "AntalSvar" i tabellen "tbl_forumtopic", det är bättre att beräkna det varje gång du kör frågan. jag har gjort ett förslag som sorterar dina topicks efter tidpunkt för senaste inlägget, beräknar antalet svar (= antalet inlägg - 1) samt visar datum för senaste inlägget i respektive topic.
SELECT [tbl_forumtopic].[Topic_Id], [tbl_forumtopic].[Forum_Id], [tbl_forumtopic].[Subject], [tbl_forumtopic].[start_member], [tbl_forumtopic].[StartDatum], Max([tbl_forumthread].[datum]) AS SenasteMeddelande, Count([tbl_forumthread].[topic_Id])-1 AS AntalSvar
FROM tbl_forumthread RIGHT JOIN tbl_forumtopic ON [tbl_forumthread].[topic_Id]=[tbl_forumtopic].[Topic_Id]
GROUP BY [tbl_forumtopic].[Topic_Id], [tbl_forumtopic].[Forum_Id], [tbl_forumtopic].[Subject], [tbl_forumtopic].[start_member], [tbl_forumtopic].[StartDatum]
ORDER BY Max([tbl_forumthread].[datum]) DESC;
//
JanneSv: Dessa joins...
Öppna Databasen I access och spara följande fråga:
Namn: qryTopicInfo
SELECT topic_ID, Max(datum) As LastDate, Count(*) As Threads
FROM tbl_forumthread
GROUP BY topic_ID
Sedan sammanställer du det enkelt med en Join i din fråga:
SELECT tbl_forumtopic.*, qryTopicInfo.LastDate, qryTopicInfo.Threads
FROM tbl_forumtopic LEFT JOIN
qryTopicInfo ON tbl_forumtopic.Topic_ID = qryTopicInfo.topic_ID
ORDER BY qryTopicInfo.LastDateSv: Dessa joins...
Nåväl, jättemycket tack allihopa. Nu kan jag dricka kaffe nöjd och glad!