phpMyAdmin
 sql >> Teknologi Basis Data >  >> Database Tools >> phpMyAdmin

Mengapa saya mendapatkan nilai NULL di Gabung Kiri?

Anda melakukan group by (3 kolom) dengan 5 kolom kolom non-agregat dalam daftar pilih. Juga, tidak masalah, tidak ada agregat dalam output kolom.

MySQL memperlakukannya sebagai distinct (untuk 3 kolom) dan mengembalikan baris pertama yang ditemuinya di cache MRU, dan jika tidak ada cache, yang pertama ditemui dalam indeks berkerumun atau pemesanan fisik untuk memenuhi 2 kolom yang tidak dikelompokkan berdasarkan.

Dengan kata lain, ini adalah kesalahan pengguna. Sebuah snafu. Saya sarankan membersihkan niat Anda dengan GROUP BY .

Agak terkait, baca jawaban terbaru saya Di sini terkait dengan ONLY_FULL_GROUP_BY . Lihat di bagian bawah tautan itu adalah Penanganan MySQL KELOMPOK MENURUT yang menurut saya adalah gambaran dari masalah nyata dan non-standar yang diizinkan oleh MySQL yang membuat data tidak terduga dan sulit dijelaskan dari pelanggaran Standar tersebut.

Jadi apa yang dilakukan tim pengembang MySQL? Mereka menerapkan standar secara default (mulai dari versi 5.7) untuk melarang jenis kueri yang baru saja Anda lakukan.

Edit1

Permintaan Anda, tanpa GROUP BY tapi dengan order by newGroups.id,people.id , pada server versi 5.7.14:




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. PhpMyAdmin menghubungkan PIPA protokol

  2. Gunakan Python untuk memuat data ke Mysql

  3. edit bidang gumpalan phpmyadmin

  4. Minimalkan database untuk mengekspor semua produk dari Magento

  5. Menyiapkan relasi tabel apa yang dilakukan Cascade, Set Null, dan Restrict?