webForumDet fria alternativet
Logga in / Bli medlem

join problem

Databaser & SQL

6 svar · 235 visningar · startad av aleborg

Medlem sedan jan. 20013 341 inlägg
Frågan#1
SELECT Forum_ID, Forum_Name, Forum_Image, 
Forum_Text, Forum_Moderator, Count(Topic_ID) 
FROM aForum Inner Join aF_Topics On Forum_ID=Topic_Category 
Where Forum_Status='1' And Forum_Sub"& selID &" 
Group by Forum_ID

Med den här koden tar jag fram alla subkategorier i ett forum och räknar ut antal inlägg som finns i subkategorin. problemet är att finns det inga inlägg så visas inte subkategorin alls :(

Sen skulle jag vilja utveckla frågan och få med ytterligare en "Count" som räknar samma som den befintliga "Count":en fast med tillägget "Where Topic_ReplyTo Is Null"

Nån som vet hur man löser det?

Medlem sedan juni 200032 967 inlägg
#2

Har du provat med LEFT OUTER JOIN istället för din INNER JOIN?

Mvh,

Medlem sedan jan. 20013 341 inlägg
#3

Japp, samma sak!

SELECT Forum_ID, Forum_Name, Forum_Image, 
Forum_Text, Forum_Moderator, Count(Topic_ID) 
FROM aForum LEFT OUTER Join aF_Topics 
On Forum_ID=Topic_Category 
Where Forum_Status='1' And Forum_Sub"& selID &" 
Group by Forum_ID
Medlem sedan dec. 200012 464 inlägg
#4

vad menar du med detta ?

Forum_Sub"& selID &"

Vilka kolumner finns i vilka tabeller? Om du har ett villkor på den högra tabellen i din where så blir det samma sak som om du har en inner join.

Om du vill räkna dom som är null:

SELECT Forum_ID, Forum_Name, Forum_Image, 
Forum_Text, Forum_Moderator, Count(Topic_ID) ,
sum(case when Topic_ReplyTo Is Null then 1 else 0 end)
FROM aForum LEFT OUTER Join aF_Topics 
On Forum_ID=Topic_Category 
Where Forum_Status='1' And Forum_Sub"& selID &" 
Group by Forum_ID
Medlem sedan jan. 20013 341 inlägg
#5
Forum_Sub"& selID &"

selID är antingen " Is Null" eller "=31"(ett id)

aForum
--Forum_ID
--Forum_Name
--Forum_Status
--Forum_Moderator
--Forum_Date
--Forum_Text
--Forum_Image
--Forum_Sub 'om är Null, då huvudkategori, annars id på den kategori den är sub till

aF_Topics
-- Topic_ID
-- Topic_Subject
-- Topic_Text
-- Topic_Date
-- Topic_ReplyTo
-- Topic_User
-- Topic_Category

Topic_ReplyTo innehåller ID:t på det inlägg det är svar på annars Null om det är en "tråd"

I koden så ville jag ha fram alla subkategorier och antal trådar och inlägg som finns i dom

Medlem sedan dec. 200012 464 inlägg
#6

Nej, då förstår jag inte vad som är fel. Med den tabelldesignn så borde det vara ok med en left outer join.

Medlem sedan jan. 20013 341 inlägg
#7

Det konstiga är att om jag kör en "left outer join" och det finns en tråd så visas ändå inte subkategorin, kör jag däremot "inner join" så syns den!

259 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)