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

Hapus baris duplikat dari tabel dengan bergabung

Jika Anda ingin menghapus duplikat kota dengan state_id yang sama (catatan duplikat), Anda dapat melakukannya dengan mengelompokkannya berdasarkan city dan state_id dan menggunakan MIN atau MAX fungsi:

Sebelum menghapus kueri, tabel Anda terlihat seperti

| ID | STATE_ID |       CITY |
------------------------------
|  1 |        1 |   city_one |
|  2 |        1 |   city_two |
|  3 |        1 |   city_one |
|  4 |        1 |   city_two |
|  5 |        2 |   city_one |
|  6 |        3 | city_three |
|  7 |        3 |   city_one |
|  8 |        3 | city_three |
|  9 |        4 |  city_four |
| 10 |        4 |  city_five |

Anda dapat menggunakan kueri berikut untuk menghapus rekaman duplikat:

DELETE city_table 
  FROM city_table
  LEFT JOIN 
  (SELECT MIN(id) AS IDs FROM city_table
   GROUP BY city,state_id
  )A
  ON city_table.ID = A.IDs
  WHERE A.ids IS NULL;

Setelah menerapkan kueri di atas, tabel Anda akan terlihat seperti:

| ID | STATE_ID |       CITY |
------------------------------
|  1 |        1 |   city_one |
|  2 |        1 |   city_two |
|  5 |        2 |   city_one |
|  6 |        3 | city_three |
|  7 |        3 |   city_one |
|  9 |        4 |  city_four |
| 10 |        4 |  city_five |

Lihat SQLFiddle ini

Untuk lebih lanjut, lihat DELETE Sintaks MySQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kelompokkan baris berdasarkan Interval Band Tahun

  2. Bergabung pada kolom dari jenis yang berbeda?

  3. Cluster Nodejs dengan koneksi MySQL

  4. Cara Mendapatkan Nomor Urutan Auto_Increment Saat Ini untuk Tabel MySQL / MariaDB

  5. MySQL bergabung dan mengecualikan?