Databas: MySQL Du kan ju prova: Det funkar inte riktigt som det skall. Använd då en LEFT eller RIGHT JOIN. Nu är det bara ett fel kvar. Du kan ju prova att ersätta COUNT(*) med COUNT(nytt_svar.ID). Tack! Nu fungerar allt som det skall.Problem med select-sträng när jag använder count(*). Får GRO
Språk: ASP
Hej.
Det är detta jag har problem med:
<code>
SELECT nytt.id, nytt.nytt_titel, nytt.nytt_text, nytt.nytt_datum, count(*) as komentarer FROM nytt, nytt_svar Where nytt_svar.svar_id = nytt.id Order By nytt.id DESC LIMIT " & start & "," & pagesize
</code>
Får följande felmeddelande:
<code>
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[TCX][MyODBC]Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause
</code>
Tror det är så att jag måste använda Group By eller något sånt. Vet dock inte hur eller var.
Jag vill alltså att "count(*) as komentarer" skall vara antalet poster i nytt_svar där nytt_svar.svar_id = nytt.id.Sv: Problem med select-sträng när jag använder count(*). Får
SELECT nytt.id, nytt.nytt_titel, nytt.nytt_text, nytt.nytt_datum, count(*) as komentarer FROM nytt, nytt_svar
WHERE nytt_svar.svar_id = nytt.id
GROUP BY nytt.id, nytt.nytt_titel, nytt.nytt_text, nytt.nytt_datum
ORDER BY nytt.id DESC LIMIT " & start & "," & pagesize Sv: Problem med select-sträng när jag använder count(*). Får
När jag använder denna kod:
<code>
SELECT nytt.id, nytt.nytt_titel, nytt.nytt_text, nytt.nytt_datum, count(*) as komentarer FROM nytt, nytt_svar WHERE nytt_svar.svar_id = nytt.id GROUP BY nytt.id, nytt.nytt_titel, nytt.nytt_text, nytt.nytt_datum ORDER BY nytt.id DESC LIMIT " & start & "," & pagesize
</code>
....och jag har en post med id "2" i tabellen "nytt" så skrivs den inte ut. Den skrivs bara ut om det är så att det finns en post med "2" i "svar_id" i tabellen "nytt_svar". Och så skall det inte vara.
Alla poster som är i tabellen "nytt" skall alltså skrivas ut. Men till var och en av dem skall man på aspsidan kunna se hur många komentarer de har genom att se hur många poster i tabellen "nytt_svar" som har samma id som en spesefik nyhet.
Det är allstså para Select raden jag behöver hjälp med.Sv: Problem med select-sträng när jag använder count(*). Får
<code>
strSQL = "SELECT nytt.id, nytt.nytt_titel, nytt.nytt_text, nytt.nytt_datum, count(*) as komentarer" & vbCrLf
"FROM nytt LEFT JOIN nytt_svar ON nytt_svar.svar_id = nytt.id" & vbCrLf
"GROUP BY nytt.id, nytt.nytt_titel, nytt.nytt_text, nytt.nytt_datum" & vbCrLf
"ORDER BY nytt.id DESC" & vbCrLf
"LIMIT " & start & "," & pagesize
</code>Sv: Problem med select-sträng när jag använder count(*). Får
För när det inte finns någon post i nytt_svar med en viss nyhets id så står det trotts allt att det är 1 komentar. Man kan ju köra en if rs("komentarer")="1" then komentarer="0" men skall det verkligen behövas?
Borde inte komentarer direkt vara "0" om det inte finns några poster i nytt_svar där svar_id är samma som en nyhets id. Som det är nu så skrivs det att det finns 1 kommentar trots att det inte finns någon post i nytt_svar som har värdet av en nyhets id i kollumnen svar_id.
Så här ser koden ut som skriver ut antalet komentarer:
[<%=rs("komentarer")%>
<%If rs("komentarer")="1" then%>
komentar]
<%ELSE%>
komentarer]
<%END IF%>Sv: Problem med select-sträng när jag använder count(*). Får
Sv: Problem med select-sträng när jag använder count(*). Får