Você está realizando um
group by
(3 colunas) com 5 colunas de colunas não agregadas na lista de seleção. Além disso, não que isso importe, não há agregações na saída da coluna. O MySQL trata isso como um
distinct
(para as 3 colunas) e traz de volta a primeira linha que encontrar no cache MRU e, se não houver cache, as primeiras encontradas no índice clusterizado ou ordenação física para satisfazer as 2 colunas não agrupadas por. Em outras palavras, é um erro do usuário. Um maluco. Eu recomendo limpar sua intenção com o
GROUP BY
. Um pouco relacionado, leia uma resposta recente minha Aqui relacionado a
ONLY_FULL_GROUP_BY
. Veja na parte inferior desse link MySQL Handling of Agrupar por
que na minha opinião é um encobrimento dos problemas reais e não-padrões que o MySQL permitiu que tornou inesperados e difíceis de explicar dados de violações desse Padrão. Então, o que a equipe de desenvolvimento do MySQL fez? Eles implementaram o padrão por padrão (começando na versão 5.7) para não permitir os tipos de consultas que você acabou de realizar.
Editar1
Sua consulta, sem
GROUP BY
mas com um order by newGroups.id,people.id
, em um servidor versão 5.7.14: