Provádíte group by
(3 sloupce) s 5 sloupci neagregovaných sloupců ve výběrovém seznamu. Také, ne že by na tom záleželo, ve výstupu sloupce nejsou žádné agregáty.
MySQL to považuje za distinct
(pro 3 sloupce) a vrátí první řádek, na který narazí v mezipaměti MRU, a pokud neexistuje žádná mezipaměť, první, na které narazí v seskupeném indexu nebo fyzickém uspořádání, aby byly uspokojeny 2 sloupce neseskupené podle.
Jinými slovy, je to chyba uživatele. Snafu. Doporučuji vyčistit váš záměr pomocí GROUP BY
.
Poněkud související, přečtěte si moji nedávnou odpověď zde
související s ONLY_FULL_GROUP_BY
. V dolní části tohoto odkazu je Zpracování MySQL GROUP BY
což je podle mého názoru zastírání skutečných problémů a nestandardů, které MySQL umožňovalo, což způsobilo neočekávaná a těžko vysvětlitelná data z porušení tohoto standardu.
Co tedy vývojový tým MySQL udělal? Standard implementovali standardně (od verze 5.7), aby zakázal typy dotazů, které jste právě provedli.
Upravit1
Váš dotaz bez GROUP BY
ale s order by newGroups.id,people.id
, na serveru verze 5.7.14: