Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Usuń zduplikowane wiersze z tabeli za pomocą opcji join

Jeśli chcesz usunąć zduplikowane miasto o tym samym state_id (zduplikowane rekordy), możesz to zrobić, grupując je według city i state_id i używając MIN lub MAX funkcja:

Przed usunięciem zapytania Twoja tabela wyglądała jak

| 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 |

Aby usunąć zduplikowane rekordy, możesz użyć następującego zapytania:

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;

Po zastosowaniu powyższego zapytania Twoja tabela będzie wyglądać tak:

| 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 |

Zobacz ten SQLFiddle

Aby uzyskać więcej informacji, zobacz DELETE Składnia 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. AKTUALIZUJ lub WSTAW MySQL Python

  2. Odpowiednik RowID Oracle w MySQL

  3. Jak w MySQL zbudować indeks, aby przyspieszyć to zapytanie?

  4. PHP MySQL wybierz losowe wiersze

  5. AngularJS | Jak wysłać dane Json do bazy danych w Codeigniter