Einige Hinweise zur MySQL-Self-Join-Deduplizierung

Einige Hinweise zur MySQL-Self-Join-Deduplizierung

Lassen Sie mich kurz das Funktionsszenario erklären:

Die Datenzeilenfelder lauten wie folgt:

Name
gestartet am
Typ

In dieser Tabelle hat der Name doppelte Werte

Nun müssen wir bei der Typbestimmung eine Liste herausfiltern, damit der Name nicht wiederholt wird und der Datensatz mit dem kleinsten started_at unter gleichem Namen gefunden wird.

Zum Beispiel:

Veranstaltung 1 2019-06-01 Typ1
Veranstaltung 1 2019-06-02 Typ1
Veranstaltung 1 2019-06-03 Typ1

Veranstaltung 2 2019-06-03 Typ1
Veranstaltung 2 05.06.2019 Typ1
Veranstaltung 2 07.06.2019 Typ1

Die Siebliste sollte sein:

Veranstaltung 1 2019-06-01 Typ1
Veranstaltung 2 2019-06-03 Typ1

Es muss auch sichergestellt sein, dass started_at größer als die aktuelle Zeit ist.

Wie soll ich ein solches SQL schreiben?

Die Lösung ist:

Ist die Verwendung des Left Join selbst

Beispielsweise s1 left join s2 on s1.name=s2.name and s2.started_at<s1.started_at and s2.started_at > now()

Schließlich, where s2.id is null

WÄHLEN
 s1.NAME,
 s1.gestartet_am,
 
AUS
 tbl s1
 LEFT JOIN tbl s2 ON s1.`name` = s2.`name` 
  UND s1.gestartet_um > s2.gestartet_um 
  UND s2.started_at > jetzt() 
WO
  s2.id IST NULL 
  UND s1.started_at > jetzt() 
 UND s1.type = 'online_vorlesung'
BESTELLEN BIS
 s1.NAME,
 s1.gestartet_um;

Hat jemand eine bessere Lösung?

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Analyse von MySQL: einzelne Tabelle eindeutig, mehrere Tabellen nach Abfrage gruppieren, um doppelte Datensätze zu entfernen
  • mysql SELECT-Anweisung zum Entfernen doppelter Informationen in einem Feld
  • Detailliertes Beispiel zum Entfernen doppelter Daten in MySQL
  • Eine SQL-Anweisung schließt die MySQL-Deduplizierung ab und behält eine
  • MySQL-Deduplizierungsmethoden
  • MySQL-Entwicklungskenntnisse: JOIN-Update und Datenduplikationsprüfung/Deduplizierung
  • Mysql doppelte Daten löschen Mysql Datendeduplizierung
  • Detaillierte Erklärung zweier Methoden zur Deduplizierung in MySQL und Beispielcode
  • Eine einfache Methode zum Zusammenführen und Entfernen doppelter MySQL-Tabellen
  • So optimieren Sie den MySQL-Deduplizierungsvorgang maximal
  • MySQL-Optimierungstipps: Analyse der Implementierungsmethoden zur Duplikatsentfernung [Millionen von Daten]

<<:  Detaillierte Erklärung zur Verwendung des Linux-Befehls Traceroute

>>:  Detaillierte Erklärung der Fallstricke beim Mischen von npm und cnpm

Artikel empfehlen

Docker-Praxis: Python-Anwendungscontainerisierung

1. Einleitung Container nutzen einen Sandbox-Mech...

Prinzip des Ladens von Docker-Images

Inhaltsverzeichnis Docker-Images Was ist ein Spie...

So erzielen Sie mit CSS einen Daten-Hotspot-Effekt

Die Wirkung ist wie folgt: analysieren 1. Hier se...

Einführung in geplante Aufgaben im Linux-System

Inhaltsverzeichnis 1. Planaufgaben anpassen 2. Ze...

HTML-Tipps, um Ihren Code semantisch zu gestalten

HTML-Semantik scheint ein alltägliches Problem zu...

MySQL-Lösung zur funktionalen Indexoptimierung

Bei der Verwendung von MySQL führen viele Entwick...

MySQL-Einschränkungstypen und Beispiele

Zwang Einschränkungen gewährleisten Datenintegrit...

Detaillierte Erklärung der Whitelist-Regeln von nginx-naxsi

Syntax der Whitelist-Regel: Grundregel wl:ID [neg...

JS implementiert Click-Drop-Effekt

js realisiert den Spezialeffekt des Klickens und ...

HTML erstellt eine einfache und schöne Anmeldeseite

Schauen wir uns das zunächst einmal an. HTML Quel...