Stai eseguendo un group by
(3 colonne) con 5 colonne di colonne non aggregate nell'elenco di selezione. Inoltre, non è importante, non ci sono aggregati nell'output della colonna.
MySQL lo tratta come un distinct
(per le 3 colonne) e riporta la prima riga che incontra nella cache MRU e, se non c'è cache, le prime incontrate nell'indice cluster o nell'ordinamento fisico per soddisfare le 2 colonne non raggruppate.
In altre parole, è un errore dell'utente. Uno spuntino. Ti consiglio di ripulire la tua intenzione con il GROUP BY
.
In qualche modo correlato, leggi una mia risposta recente Qui
relativo a ONLY_FULL_GROUP_BY
. Vedi in fondo a quel link c'è Gestione MySQL di GRUPPO PER
che a mio avviso è una sorvolata sui problemi reali e sui non standard consentiti da MySQL, il che ha reso i dati inaspettati e difficili da spiegare dalle violazioni di quello standard.
Allora, cosa ha fatto il team di sviluppo di MySQL? Hanno implementato lo standard per impostazione predefinita (a partire dalla versione 5.7) per non consentire i tipi di query che hai appena eseguito.
Modifica1
La tua richiesta, senza GROUP BY
ma con un order by newGroups.id,people.id
, su un server versione 5.7.14: