Ik krijg de volgende fout melding, maar ik weet niet wat het inhoud en hoe ik dit moet oplossen.

Het gaat om de volgende foutmelding:
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

Heb al zitten google maar krijg nergens duidelijk antwoord op de vraag.
Erwin H op 09/01/2012 11:45:57

[quote="Jelle - op 09/01/2012 11:37:19"]
Je kan functies als MIN, MAX en COUNT alleen gebruiken als je ook gebruik maakt van Group By

Dat is niet waar, je kan MIN, MAX, COUNT prima gebruiken zonder group by. Alleen in dat geval wordt de group functie uitgevoerd over alle records.

Dat gezegd hebbende, de foutmelding gaat daar blijkbaar wel over. Ik ken het probleem op zich niet, maar het ziet ernaar uit dat als je een GROUP BY gebruikt je ervan verlost wordt.


[/quote]

Het is heel simpel, als je in je Query geen normale kolommen selecteert en alleen aggegrate functions uitvoert dan is het zonder group by geen probleem.

Officieel hoor je op ELK kolom wat niet aggegrate is te defineren in je GROUP BY. Voorbeeld:

SELECT username, place, SUM(o.totalAmount) FROM user INNER JOIN orders o ON(orderid) GROUP BY username, place


Maar omdat mysql niet zo strict is kan dit ook:

SELECT username, place, SUM(o.totalAmount) FROM user INNER JOIN orders o ON(orderid) GROUP BY username


Maar kan wel vreemde resultaten opleveren. Het beste is dus om alle kolommen mee te pakken.
Dank voor de uitleg weer wat geleerd. Ga dit dan maar even allemaal aanpassen:)

Reageren