erkaMedlem sedan dec. 19996 522 inlägg 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 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 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 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 Ibland är man korkad, tack LarsG ännu en gång, det är beundransvärt