Håller på med en liten omröstningsfunktion/veckans fråga som jag tänkte ha på min kommande sida. Innan har jag gjort så att jag lagrat all information om en specifik omröstning i endast en tabell. Denna gång tänkte jag göra det lite mer avancerat genom att använda tre tabeller, men jag funderar på om det verkligen är bättre att göra så då det, för mig iaf, blir fler SQL-frågor att köra då när man ska räkna ihop resultat osv.
Polls
Id
Question
Polls_alternatives
Id
PollId (Id till den poll alternativet tillhör)
Alternative
Polls_votes
UserId (Id till den användare som lagt sin röst)
AlternativeId (Id till det alternativ rösten tillhör)
Som jag har löst det nu har jag fått göra en fråga för att ta ut själva frågan från tabellen "Polls", en annan för att ta ut alla alternativ som tillhör den frågan och i den loopen kolla hur många röster det alternativet har. Lite krångligt. :)
Frågan är om det går att göra enklare? Har man en fråga med 6 alternativ så är det 13 SQL-frågor ju, inte så smidigt...
Tack på förhand, om det är någon som orkar ta sig an detta. :OO
-- ta fram alla alternativ för en röstning
select question,alternative
from polls inner join polls_alternatives
on polls.id = polls_alternatives.pollId
where polls.id = 4711
-- räkna röster för olika alternativ
select question, alternative, count(AlternativeId) as votes
from polls as p inner join polls_alternatives as pa
on p.id = pa.pollsId left outer join polls_votes pv
on pa.id = pv.alternativeId
group by question, alternative
Om det är access så får man skriva den sista frågan som
-- räkna röster för olika alternativ
select question, alternative, count(AlternativeId) as votes
from (polls as p inner join polls_alternatives as pa
on p.id = pa.pollsId) left outer join polls_votes pv
on pa.id = pv.alternativeId
group by question, alternative
Om det är access så får man skriva den sista frågan som
[kod]
-- räkna röster för olika alternativ
select question, alternative, count(AlternativeId) as votes
from (polls as p inner join polls_alternatives as pa
on p.id = pa.pollsId) left outer join polls_votes pv
on pa.id = pv.alternativeId
group by question, alternative
Men hur skriver man för att räkna röster ur just en omröstning t.ex pollID = 1
Redigerat
Var inget!
Where p.id=1
255 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e