Dit is nieuw in MySQL 5.7 en is een waarschuwing dat uw vraag dubbelzinnig is.
Bekijk de volgende tabel:
id | name | age | points
--------------------------------------------
1 Bob 21 1
2 James 14 1
3 Bob 21 3
4 James 14 2
5 Casey 17 3
Als je de volgende vraag hebt gedaan:
SELECT name, age, SUM(points) FROM scores GROUP BY name
Dan de name
kolom wordt gebruikt om te groeperen. Merk op dat age
kan meerdere waarden hebben, dus het is "niet-geaggregeerd". Je moet iets doen om die waarden samen te vouwen.
Het gedrag in 5.6 en eerder was om gewoon de eerste te kiezen, afhankelijk van de sorteervolgorde, hoewel dit soms onvoorspelbaar was en zou mislukken. In 5.7 voorkomen ze dat je het in de eerste plaats doet.
De oplossing hier is om daar ook op te groeperen, of om een aggregatie-operator toe te passen zoals MIN()
ernaartoe.