Questa è una novità in MySQL 5.7 ed è un avvertimento che la tua query è ambigua.
Considera la seguente tabella:
id | name | age | points
--------------------------------------------
1 Bob 21 1
2 James 14 1
3 Bob 21 3
4 James 14 2
5 Casey 17 3
Se hai fatto la seguente query:
SELECT name, age, SUM(points) FROM scores GROUP BY name
Quindi il name
colonna viene utilizzata per il raggruppamento. Nota che age
può avere più valori, quindi è "non aggregato". Devi fare qualcosa per ridurre quei valori.
Il comportamento in 5.6 e precedenti consisteva nel selezionare il primo in base all'ordinamento, anche se a volte era imprevedibile e falliva. In 5.7 ti stanno impedendo di farlo in primo luogo.
La soluzione qui è raggruppare anche questo o applicare un operatore aggregato come MIN()
ad esso.