Du måste lägga in alla kolumner i SELECT i GROUP BY eller använd funktioner på dem som komprimerar resultaten till ett enda värde (som MIN , MAX eller SUM ).
Ett enkelt exempel för att förstå varför detta händer:Föreställ dig att du har en databas som denna:
FOO BAR
0 A
0 B
och du kör SELECT * FROM table GROUP BY foo . Detta innebär att databasen måste returnera en enda rad som resultat med den första kolumnen 0 för att uppfylla GROUP BY men det finns nu två värden för bar att välja mellan. Vilket resultat skulle du förvänta dig - A eller B ? Eller bör databasen returnera mer än en rad, vilket bryter mot avtalet för GROUP BY ?