Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL KIRI BERGABUNG hasil duplikat

Tidak, ini baik-baik saja. Ini hanyalah salah satu kasus yang jarang terjadi ketika Anda ingin menggunakan DISTINCT kata kunci untuk menghapus duplikat.

Dalam hal ini hal ini dibenarkan oleh fakta bahwa logika kueri benar, meskipun mengembalikan lebih dari satu baris. Sering kali orang dapat melihat penggunaan DISTINCT padahal logika kuerinya salah.

Catatan samping:

  • filter apa pun pada referensi tabel yang Anda gunakan di WHERE klausa selain IS NULL/IS NOT NULL akan membuat LEFT JOIN pada referensi tabel yang sama ini beralih ke INNER JOIN , seperti untuk perilaku hasil akhir. (lihat ini:https://stackoverflow.com/a/15483895/1291428 )
  • Anda tidak boleh menggunakan GROUP BY untuk mensimulasikan efek DISTINCT , karena 2 alasan:

    1/ Ini bukan tujuannya. Salah satu efek dari GROUP BY adalah untuk menghilangkan duplikat, tetapi tujuan utamanya adalah untuk mengelompokkan baris menurut serangkaian kriteria tertentu, untuk menerapkan beberapa perhitungan/operasi analitik pada baris tersebut.

    2/ GROUP BY juga ORDER BY hasil (dalam mysql), yang belum tentu seperti yang Anda inginkan dan dalam hal ini memperlambat eksekusi. Tolong, pastikan penggunaan yang tepat dari apa yang disediakan mesin, itu selalu lebih baik dari sudut pandang kompatibilitas ke depan. (mengantisipasi bahwa apa yang Anda sertakan seperti yang diberikan sebenarnya tidak)

salam.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Warisan Kelas dengan .NET EF4.1 + MySQL

  2. Mengonversi tanggal di MySQL dari bidang string

  3. Hasil waktu kueri di MySQL dengan PHP

  4. TAMPAK DROP MySQL

  5. bagaimana mencegah injeksi sql dari kueri ini?