Avatar billede m_sorensen Nybegynder
22. januar 2004 - 11:56 Der er 11 kommentarer og
1 løsning

Konvertering fra Access til mySQL

Jeg er ved at lave en konvertering fra Access til mysql, og nu har jeg lidt problemer med en sql sætning, som ikke virker længere.

Er der nogen som kan gennemskue hvad der er galt ?

SQL = "SELECT photos.id FROM photos INNER JOIN comments ON photos.id = comments.photo WHERE category <> 15 AND category <> 32 GROUP BY photos.id ORDER BY Max(comments.id) DESC limit 0,4"
Avatar billede syntax_hh Nybegynder
22. januar 2004 - 12:06 #1
Hvilken fejl får du?
Avatar billede m_sorensen Nybegynder
22. januar 2004 - 12:08 #2
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[TCX][MyODBC]Invalid use of group function
Avatar billede eagleeye Praktikant
22. januar 2004 - 12:49 #3
Det giver ikke meget mening at hvade MAX i en order by??

er du sikker på det ikke skal være i stil med:

SQL = "SELECT photos.id FROM photos INNER JOIN comments ON photos.id = comments.photo WHERE category <> 15 AND category <> 32 GROUP BY photos.id, Max(comments.id) ORDER BY comments.id DESC limit 0,4"
Avatar billede m_sorensen Nybegynder
22. januar 2004 - 13:01 #4
Den skal vælge de fire ids fra photos, og de 4 id's skal være dem med flest kommentarer.
Avatar billede m_sorensen Nybegynder
22. januar 2004 - 13:02 #5
undskyld.. de nyeste kommenterede selvf.
Avatar billede m_sorensen Nybegynder
22. januar 2004 - 13:03 #6
Dit forslag give den samme fejl.
Avatar billede eagleeye Praktikant
22. januar 2004 - 18:07 #7
Flest klommentarer så det vist count der skal må.

Prøv:

SQL = "SELECT photos.id, Count(comments.id) as antal FROM photos LEFT JOIN comments ON photos.id = comments.photo WHERE category <> 15 AND category <> 32 GROUP BY photos.id ORDER BY antal DESC limit 0,4"
Avatar billede m_sorensen Nybegynder
22. januar 2004 - 20:08 #8
Undskyld Eagleeye.. jeg skrev forkert. Jeg mente selvf., at jeg skal bruge de seneste 4 kommenterede. Jeg udtrykte mig bare ikke klart nok.
Avatar billede eagleeye Praktikant
22. januar 2004 - 20:13 #9
Ok :)  så prøv at skrive max hvor der står count:

SQL = "SELECT photos.id, max(category.id) as antal FROM photos LEFT JOIN comments ON photos.id = comments.photo WHERE category <> 15 AND category <> 32 GROUP BY photos.id ORDER BY antal DESC limit 0,4"
Avatar billede m_sorensen Nybegynder
22. januar 2004 - 21:15 #10
Super - es wirkt... lav lige svar, så får du point.
Avatar billede eagleeye Praktikant
22. januar 2004 - 21:17 #11
Ok her et svar ;)
Avatar billede m_sorensen Nybegynder
22. januar 2004 - 22:11 #12
Og her er point.. takker for svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester