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

Wie InnoDB Transaktionsisolationsebenen geschickt implementiert

Vorwort Im vorherigen Artikel „Detaillierte Erklä...

mysql teilt eine Datenzeile basierend auf Kommas in mehrere Zeilen auf

Inhaltsverzeichnis Trennwirkung Erläuterung der B...

So berechnen Sie die Bildrate FPS von Webanimationen

Inhaltsverzeichnis Standards für flüssige Animati...

So zeichnen Sie spezielle Grafiken in CSS

1. Dreieck Rahmeneinstellungen Code: Breite: 300p...

Wir treiben IE6 alleine in den Untergang

Tatsächlich fragen wir uns jeden Tag, wann IE6 wi...

jQuery implementiert dynamische Tag-Ereignisse

In diesem Artikel wird der spezifische Code von j...

CSS-Implementierungscode für die Textausrichtung

Beim Erstellen von Formularen kommt es häufig vor...

So verwenden Sie Navicat zum Exportieren und Importieren einer MySQL-Datenbank

MySql ist eine Datenquelle, die wir häufig verwen...

40 Webseiten-Designs mit supergroßen Schriftarten

Heutige Webdesigns neigen dazu, sehr große Schrif...

In JavaScript integrierter Zeit- und Datumsformatierungsbeispielcode

1. Grundkenntnisse (Methoden von Datumsobjekten) ...

Detaillierte Erklärung des in JavaScript integrierten Date-Objekts

Inhaltsverzeichnis Date-Objekt Erstellen eines Da...