Avatar billede ncp Nybegynder
29. april 2003 - 14:54 Der er 9 kommentarer og
1 løsning

Problemer med HAVING-clause

"SELECT t_messages.id, t_users.navn, t_messages.message, t_messages.date, t_messages_1.date AS nyesteindlæg, Count(t_messages_1.id) AS AntalOfid " & _
"FROM t_messages AS t_messages_1 RIGHT JOIN t_messages ON t_messages_1.responseid = t_messages.id INNER JOIN t_users ON t_users.id = t_messages.userid " & _
"GROUP BY t_messages.id, t_users.navn, t_messages.message, t_messages.date, t_messages_1.date, t_messages.responseid, t_messages.forumid HAVING (((t_messages.responseid)=0) AND ((t_messages.forumid)=1)) " & _
"ORDER BY t_messages_1.date DESC;"

Giver fejlen
[MySQL][ODBC 3.51 Driver][mysqld-3.23.53-log]Unknown column 't_messages.responseid' in 'having clause'

Er snart træt af at sidde og rodde med sql-qurrys - Findes der ikke er program som kan lave dem for en, som er nogenlunde ligeså avanceret som f.eks. MS Access forspørgelses-generator ?
Avatar billede ahv Nybegynder
29. april 2003 - 14:59 #1
Hvad siger den til det her?

HAVING t_messages.responseid=0 AND t_messages.forumid=1 " & _
"ORDER BY t_messages_1.date DESC;"
Avatar billede erikjacobsen Ekspert
29. april 2003 - 15:02 #2
Det skal vel bare være en WHERE og så før GROUP BY ?
Avatar billede ncp Nybegynder
29. april 2003 - 15:02 #3
ahv -> Det samme...
Avatar billede ncp Nybegynder
29. april 2003 - 15:04 #4
erikjacobsen -> Jah det sku det...
Avatar billede ncp Nybegynder
29. april 2003 - 15:04 #5
Men findes der virkelig ikke et program som kan lave sql til Mysql lidt hurtigt og brugervenligt uden at lave fejl i det ?
Avatar billede erikjacobsen Ekspert
29. april 2003 - 15:06 #6
Hvad med "The Human Brain" - hehe - jeg kender ikke nogen, og det er da
ikke så svært ... ;)
Avatar billede erikjacobsen Ekspert
29. april 2003 - 15:09 #7
Forskellen på WHERE og HAVING - som jeg fortæller det til min 6 årige
datter, når hun vil vide hvad farmand går og laver:

WHERE kan undersøge felter i tabellerne før man laver GROUP BY, og bør
bruges hvis de derved kan frasortere rækker -> billigere GROUP BY.

HAVING undersøger felter efter GROUP BY - både dem, der bare kommer med
over (og som man ligesågodt kunne have checket i WHERE), men også de
nye, der er resultat af fx. en COUNT(xxx) as yyy.

MySql kan måske selv optimere lidt på det. Din "fejl" var at responsid ikke
var nævnt mellem SELECT og FROM.
Avatar billede ncp Nybegynder
29. april 2003 - 15:11 #8
Ahh... ok - det hjalp en smugle... takker...
Avatar billede erikjacobsen Ekspert
29. april 2003 - 18:15 #9
PS: ingen point til mig - jeg samler ikke på dem. Du kan afslutte
spørgsmålet som du vil.
Avatar billede ncp Nybegynder
29. april 2003 - 18:27 #10
ok...
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
Computerworld tilbyder specialiserede kurser i database-management

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