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

Beispielcode zum Setzen von Hotlinks und Koordinatenwerten für Webbilder

Manchmal müssen Sie mehrere Bereiche auf einem Bi...

So installieren und deinstallieren Sie open-vswitch unter Linux

1. Kompilieren und installieren Sie OVS aus dem Q...

Schritte zum Ausführen von ASP.NET Core im Docker-Container

Es gibt in letzter Zeit zu viel Wissen zu lernen,...

Detaillierte Erklärung des MySQL-Datenbank-LIKE-Operators in Python

Der LIKE-Operator wird in der WHERE-Klausel verwe...

JavaScript-Grundlagen: Funktion zur sofortigen Ausführung

Inhaltsverzeichnis Funktionsformat sofort ausführ...

So zeichnen Sie eine Mindmap in einem Miniprogramm

Inhaltsverzeichnis Was ist eine Mindmap? Wie zeic...

MySQL führt Befehle für externe SQL-Skriptdateien aus

Inhaltsverzeichnis 1. Erstellen Sie eine SQL-Skri...

Webseiten-Erlebnis: Planung und Design

1. Klären Sie die Designrichtung <br />Zuers...

Implementierung des Tomcat-Bereitstellungsprojekts und Integration mit IDEA

Inhaltsverzeichnis 3 Möglichkeiten zum Bereitstel...

Details zur JS-Array-Deduplizierung

Inhaltsverzeichnis 1 Testfälle 2 JS-Array-Dedupli...