Изпълнявате group by
(3 колони) с 5 колони неагрегирани колони в списъка за избор. Освен това, не че има значение, няма агрегати в изхода на колоната.
MySQL третира това като distinct
(за 3-те колони) и връща първия ред, който среща в кеша на MRU, и ако няма кеш, първите, открити в клъстерирания индекс или физическото подреждане, за да удовлетворят 2-те негрупирани по колони.
С други думи, това е потребителска грешка. Забавление. Препоръчвам да изчистите намерението си с GROUP BY
.
Донякъде свързано, прочетете един скорошен мой отговор Тук
свързани с ONLY_FULL_GROUP_BY
. Вижте в долната част на тази връзка MySQL обработка на ГРУПИРАНЕ ПО
което според мен е пренебрегване на реалните проблеми и нестандартни, които MySQL допуска, което прави неочаквани и трудни за обяснение данни от нарушения на този стандарт.
И така, какво направи екипът на разработчиците на MySQL? Те внедриха стандарта по подразбиране (започвайки от версия 5.7), за да забранят типовете заявки, които току-що изпълнихте.
Редактиране1
Вашата заявка, без GROUP BY
но с order by newGroups.id,people.id
, на сървър версия 5.7.14: