phpMyAdmin
 sql >> база данни >  >> Database Tools >> phpMyAdmin

Защо получавам стойности NULL при лявото присъединяване?

Изпълнявате 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:




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Разширението mysql е остаряло

  2. Как да защитя phpMyAdmin

  3. PHPMyAdmin Недефиниран индекс:Редове

  4. как да възстановя моите MYI, MYD таблици от .FRM

  5. phpmyadmin токен несъответствие за дълго време на празен ход