11. september 2006 - 22:42Der er
3 kommentarer og 1 løsning
where clause, klappen er gået helt ned
Hej,
Jeg prøver at laver dette: SELECT opskrifter.id as id, IFNULL(sum(karaktertabel.karakter)/count(karaktertabel.karakter),0) as karakter FROM opskrifter LEFT JOIN opskrifter_karakter as karaktertabel ON opskrifter.id = karaktertabel.opskrift WHERE opskrifter.godkendt = '1' AND karakter >= 7 GROUP by opskrifter.id, karaktertabel.opskrift ORDER BY opskrifter.titel ASC LIMIT 0,15;
Men får denne fejl: Unknown column 'karakteren' in 'where clause'
Jeg synes jeg har lavet det tricks mange gange, men det kan jeg vel ikke have gjort. Det er sikkert et trivielt spørgsmål, men jeg er helt blank lige pt :/
SQLen skulle være: SELECT opskrifter.id as id, IFNULL(sum(karaktertabel.karakter)/count(karaktertabel.karakter),0) as karakteren FROM opskrifter LEFT JOIN opskrifter_karakter as karaktertabel ON opskrifter.id = karaktertabel.opskrift WHERE opskrifter.godkendt = '1' AND karakteren >= 7 GROUP by opskrifter.id, karaktertabel.opskrift ORDER BY opskrifter.titel ASC LIMIT 0,15;
Jeg kan ikke blive helt klog på, om der stadig er en fejl. Det tror jeg der må være, for når du laver en sum funktion, kan du ikke samtidig teste på den i WHERE delen. Så skal du ned på HAVING delen, da den først er fastlagt efter GROUP BY er gennemført. Så jeg tror du skal frem til noget lignende dette:
SELECT opskrifter.id as id, IFNULL(sum(karaktertabel.karakter)/count(karaktertabel.karakter),0) as karakteren FROM opskrifter LEFT JOIN opskrifter_karakter as karaktertabel ON opskrifter.id = karaktertabel.opskrift WHERE opskrifter.godkendt = '1' GROUP by opskrifter.id, karaktertabel.opskrift HAVING karakteren >= 7 ORDER BY opskrifter.titel ASC LIMIT 0,15;
I øvrigt undrer det mig, at du ikke bare bruger AVG funktionen i stedet for SUM / COUNT, men der er sikkert en mening med galskaben. :-)
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.