webForumDet fria alternativet

Flera Count(*)

4 svar · 248 visningar · startad av erka

erkaMedlem sedan dec. 19996 522 inlägg
#1

Hej!

Jag har två tabeller som ser ut på följande sätt. Det är till ett poängsystem för användare med x olika grenar.

LL_pointCategorys
-Pk_PointCategoryId (primärnyckel, identity)
-PointName (varchar)

LL_pointCategorysUsersLink
-Pk_PointLinkId (primärnyckel, identity)
-Fk_UsrId (int)
-Fk_PointCategoryId (int)

Jag ska loopa igenom alla katergorier (med asp.net) i LL_pointCategorys och på varje post i loopen göra en count som ser ut på följande

SELECT COUNT(*) AS PointScore FROM dbo.LL_pointCategorysUsersLink WHERE (Fk_PointCategoryId  = "& POST I LOOPEN &") AND (Fk_PointCategoryId = "& UsrId &")

Kruxet blir att eftersom det är 18 kategorier i LL_pointCategorys blir det rätt många databasanrop, finns det något sätt att få ut det i en och samma fråga? LarsG eller någon annan expert kanske kan svara om det går.

Tacksam

LarsGMedlem sedan dec. 200012 464 inlägg
#2
SELECT COUNT(*) AS PointScore, PointName 
 FROM dbo.LL_pointCategorysUsersLink 
WHERE (Fk_PointCategoryId  = "& POST I LOOPEN &") 
AND (Fk_PointCategoryId = "& UsrId &")
group by PointName
erkaMedlem sedan dec. 19996 522 inlägg
#3

Tack LarsG, man måste alltså köra ett extra databas anrop på varje post i loopen.

Ditt sätt gör ju inte skillnad för antalet databasanrop, jag måste först loopa igenom alla kategorier och på varje post i denna loop måste jag ställa en ny fråga som hämtar ut antalet.

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Nej, det ska räcka med 1 anrop i och med att du har group by med . Det behövs en join också.

SELECT COUNT(*) AS PointScore, PointName 
 FROM dbo.LL_pointCategorysUsersLink cu , LL_pointCategorys pc
WHERE cu.Fk_PointCategoryId = pc.Pk_PointCategoryId
group by PointName
erkaMedlem sedan dec. 19996 522 inlägg
#5

Ibland är man korkad, tack LarsG ännu en gång, det är beundransvärt

128 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)