webForumDet fria alternativet

Flera left joins?

2 svar · 125 visningar · startad av mozilla

mozillaMedlem sedan juli 20011 084 inlägg
#1

Jag har en SQL fråga som blivit ganska lång nu, den är översatt från Access och ser ut så här:

SELECT q.question,Count(a.poll_ID),q.week,q.year,q.poll_date,u.nickname,Max(a.votes),Sum(a.votes)[b],Count(pu.poll_ID)[/b]
FROM tblP_query q 
INNER JOIN tblUser u ON u.user_ID = q.user_ID 
[b]LEFT JOIN tblP_user pu ON pu.poll_ID = q.poll_ID [/b]
LEFT JOIN tblP_answer a ON a.poll_ID = q.poll_ID 
WHERE (q.week < "& DatePart("ww",Now(),2)+1 &" OR q.year < "& DatePart("yyyy",Now(),2) &") 
GROUP BY q.poll_ID 
ORDER BY q.year,q.week DESC

Problemet ligger i Count(pu.poll_ID), jag får inte ut rätt svar, jag får ut dubbelt så mycket, om det finns 1 post så får jag ut 2, finns det 4 poster får jag ut 8 osv. Varför? En enkel lösning vore ju bara att dela svaret med 2, men jag tänkte hör mer er om ni vet någon lösning först? Tilläggas kan att om man tar bort tblP_answer ur frågan får jag ut rätt svar...?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Hur ser tabellerna ut? Med lite exempeldata i, tack.

Varför ser din group by ut som den gör?

Vad är det du vill åstadkomma?

Det verkar som om du försöker få fram för mycket i samma fråga.

mozillaMedlem sedan juli 20011 084 inlägg
#3

  :i Jag löste det på ett annat sätt... eller, jag kom på att Sum(a.votes) och Count(pu.poll_ID) blir samma resultat, så jag slängde bort Counten helt...

256 ms totalt · 3 externa anrop · v20260731065814-full.30151723
132 ms — hämta forumlista (db)
121 ms — hämta statistik (db)
131 ms — hämta tråd, inlägg och bilagor (db)