Heim  >  Artikel  >  Datenbank  >  MySQL-Entwicklungsfähigkeiten: JOIN-Update und Datenduplizierungsprüfung/Deduplizierung_MySQL

MySQL-Entwicklungsfähigkeiten: JOIN-Update und Datenduplizierungsprüfung/Deduplizierung_MySQL

WBOY
WBOYOriginal
2016-11-30 23:59:421895Durchsuche

Beinhaltet hauptsächlich: JOIN, JOIN-Aktualisierung, GRUPPE DURCH Überprüfung/Deduplizierung der Datenduplizierung

1 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN (nicht von MySQL unterstützt), CROSS JOIN

Dies ist ein sehr guter Blog-Beitrag, den ich im Internet gefunden habe und der die Join-Anweisung veranschaulicht:

CODING HORROR – Eine visuelle Erklärung von SQL-Joins

Die folgende Abbildung zeigt deutlich den Datenauswahlbereich von Join

[][1]
[1]: http://7xs09x.com1.z0.glb.clouddn.com/160725-imooc-mysql-development-skills-notes-001.png

2 Aktualisieren Sie die Tabelle, die sich selbst in die Filterbedingungen einbezieht

Aktualisieren Sie die wiederholten Felder von col_a in der Tabelle t1 t2

UPDATE t1 
SET col_a = 'hi' 
WHERE t1.col_a IN (
 SELECT b.col_a
 FROM t1 a INNER JOIN t2 b on
 a.col_a = b.col_a
)
;
ERROR:1093 

kann umgewandelt werden in:

UPDATE t1 aa JOIN(
 SELECT b.col_a
 FROM t1 a INNER JOIN t2 b on
 a.col_a = b.col_a
)bb on aa.col_a= bb.col_a
SET col_a = 'hi' 
;

3 Fragen Sie doppelte Daten ab und löschen Sie doppelte Daten

Verwenden Sie GROUP BY und HAVING, um doppelte Daten abzufragen

SELECT col_a, COUNT(*)
FROM t1
GROUP BY col_a HAVING COUNT(*) > 1
;

Löschen Sie doppelte Daten und behalten Sie die mit der größten ID für dieselben Daten bei

DELETE a
FROM t1 a JOIN (
 SELECT col_a,COUNT(*),MAX(id) AS id
 FROM t1
 GROUP BY col_a HAVING COUNT(*) > 1
)b ON a.col_a = b.col_a
WHERE a.id < b.id
;

Vielen Dank für das Lesen dieses Artikels. Ich hoffe, er kann allen helfen. Vielen Dank für Ihre Unterstützung dieser Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn