Connect.Execute("SELECT titel, ar, f.id, count(b.betyg) AS votes,sum(b.betyg)/count(b.betyg) AS betyg
FROM filmer AS f
LEFT JOIN betyg b
ON f.id = b.filmid
GROUP BY f.id
HAVING votes >= 4
ORDER BY Titel")
Do Until RS.EOF
Connect.Execute("SELECT AVG(Betyg) as Betyg, Count(Betyg) as antal
FROM Betyg
WHERE (Anvandarnamn='Användare1' OR Anvandarnamn='Användare2') AND Titel='" & RS("Titel") & "'")
Loop
(har förenklat utseendet på sql-frågorna genom radbrytningar)
Detta borde väl ta en hel del prestanda på servern? Jag har räknat ut att det på sidan totalt kommer vara 45 sql-satser per sida, vilket borde vara rätt mycket?
Finns det något sätt att slippa ha en sql-fråga mitt inne i loopen? (Att alltså ha den inne i den första sql-frågan)
SELECT titel, ar, f.id,
count(b.betyg) AS votes,
sum(b.betyg)/count(b.betyg) AS betyg,
(SELECT AVG(Betyg) as Betyg,
FROM Betyg
WHERE Anvandarnamn in ('Användare1' ,'Användare2') AND Titel= b.titel) as avgBetyg,
(SELECT count(Betyg)
FROM Betyg
WHERE Anvandarnamn in ('Användare1' ,'Användare2') AND Titel= b.titel) as antal
FROM filmer AS f
LEFT JOIN betyg b
ON f.id = b.filmid
GROUP BY titel,ar,f.id
HAVING count(b.betyg) >= 4
ORDER BY Titel
Microsoft OLE DB Provider for ODBC Drivers error '80040e09'
[TCX][MyODBC]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT AVG(Betyg) as Betyg, FROM Betyg WHERE Anvandarnamn in ('
Jag frågade webbhotellet och de sa att de hade MySQL 4.1. Är det fel på koden eller är det fel hos webbhotellet?
SELECT titel, ar, f.id,
count(b.betyg) AS votes,
sum(b.betyg)/count(b.betyg) AS betyg,
(SELECT AVG(Betyg)
FROM Betyg
WHERE Anvandarnamn in ('Användare1' ,'Användare2') AND Titel= b.titel) as avgBetyg,
(SELECT count(Betyg)
FROM Betyg
WHERE Anvandarnamn in ('Användare1' ,'Användare2') AND Titel= b.titel) as antal
FROM filmer AS f
LEFT JOIN betyg b
ON f.id = b.filmid
GROUP BY titel,ar,f.id
HAVING count(b.betyg) >= 4
ORDER BY Titel
Felmeddelandet tyder på att det är subselecten som den inte gillar. Jag tycker att det låter konstigt att ett Webhotell skulle använda 4.1 eftersom det inte är en officiell release ännu.