Kurze Analyse von MySQL Union und Union All

Kurze Analyse von MySQL Union und Union All

In der Datenbank führen sowohl die Schlüsselwörter UNION als auch UNION ALL zwei Ergebnismengen zu einer zusammen, aber die beiden unterscheiden sich hinsichtlich Verwendung und Effizienz.

UNION in MySQL

UNION filtert nach dem Verknüpfen der Tabellen doppelte Datensätze heraus. Nachdem die Tabellen verknüpft wurden, wird der resultierende Ergebnissatz sortiert, doppelte Datensätze werden gelöscht und anschließend die Ergebnisse zurückgegeben. In der Praxis werden in den meisten Anwendungen keine doppelten Datensätze generiert. Am häufigsten ist die UNION der Prozesstabelle und der Verlaufstabelle. wie:

wähle * aus gc_dfys union wähle * aus ls_jg_dfys

Wenn dieses SQL ausgeführt wird, ruft es zuerst die Ergebnisse der beiden Tabellen ab, verwendet dann den Sortierbereich zum Sortieren und Löschen doppelter Datensätze und gibt schließlich den Ergebnissatz zurück. Wenn die Datenmenge in der Tabelle groß ist, kann dies zu einer Datenträgersortierung führen.

UNION ALL in MySQL

UNION ALL kombiniert einfach die beiden Ergebnisse und gibt sie zurück. Wenn in den beiden zurückgegebenen Ergebnissätzen doppelte Daten vorhanden sind, enthält der zurückgegebene Ergebnissatz auf diese Weise die doppelten Daten.

In Bezug auf die Effizienz ist UNION ALL viel schneller als UNION. Wenn Sie also bestätigen können, dass die beiden zusammengeführten Ergebnismengen keine doppelten Daten enthalten, verwenden Sie UNION ALL wie folgt:

wähle * aus gc_dfys, vereinigung aller, wähle * aus ls_jg_dfys

Mit UNION sind alle zurückgegebenen Zeilen eindeutig, so als hätten Sie DISTINCT auf den gesamten Ergebnissatz angewendet.

Wenn Sie „Union all“ verwenden, werden alle Zeilen zurückgegeben, ohne Duplikate zu entfernen.

Wenn Sie eine ORDER BY- oder LIMIT-Klausel verwenden möchten, um das gesamte UNION-Ergebnis zu sortieren oder einzuschränken, sollten Sie die einzelnen SELECT-Anweisungen in Klammern setzen und das ORDER BY- oder LIMIT-Statement nach der letzten einfügen:

(WÄHLEN Sie a AUS Tabellenname, wobei a=10 und B=1 ist) 
UNION
(WÄHLEN Sie a AUS Tabellenname, wobei a=11 und B=2 ist)
BESTELLUNG NACH LIMIT 10;

Dies ist etwas umständlicher:

Wählen Sie die Benutzer-ID aus (
wähle Benutzer-ID aus Testa Vereinigung aller wähle Benutzer-ID aus Testb) t 
Sortieren nach Benutzer-ID-Limit 0,1;

Wenn Sie dennoch nach Bedingungen gruppieren möchten, dann:

Wähle Benutzer-ID aus (Wähle Benutzer-ID aus Testa, vereinigte alle, wähle Benutzer-ID aus Testb) t Gruppiere nach Benutzer-ID mit Anzahl(Benutzer-ID) = 2;

Hinweis: Nach den Vereinigungsklammern muss ein Alias ​​stehen, sonst wird ein Fehler gemeldet

Wenn das Datenvolumen mehrerer Union-Tabellen groß ist, empfiehlt es sich natürlich, den Text zuerst zu exportieren und ihn dann mit einem Skript auszuführen.

Da reines SQL verwendet wird, ist die Effizienz relativ gering und es werden temporäre Dateien geschrieben. Wenn Ihr Speicherplatz nicht ausreicht, können Fehler auftreten.

Fehler beim Schreiben der Datei „/tmp/MYLsivgK“ (Fehlercode: 28)

Zusammenfassen

Das Obige ist eine Einführung in MySQL Union und Union All. Ich hoffe, es wird Ihnen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • Ein kurzes Verständnis des Unterschieds zwischen MySQL Union All und Union
  • Grundlegende Verwendung von UNION und UNION ALL in MySQL
  • Detaillierte Erklärung der Verwendung von UNION in MySQL
  • Tutorial der MySQL-Reihe zum Verständnis der Verwendung der Schlüsselwörter „union“ (alles), „limit“ und „exists“

<<:  So verwenden Sie Verbindungen der Physik-Engine in CocosCreator

>>:  Tutorial zur Installation von lamp-php7.0 in einer Centos7.4-Umgebung

Artikel empfehlen

Erstellen Sie eine virtuelle Umgebung mit venv in Python3 in Ubuntu

1. Virtuelle Umgebung folgt dem Projekt, erstelle...

Schritte zum Verpacken und Bereitstellen des Vue-Projekts auf dem Apache-Server

In der Entwicklungsumgebung wird das Vue-Projekt ...

Was bedeutet das „a“ in rgba? CSS RGBA-Farbleitfaden

RGBA ist eine CSS-Farbe, mit der Farbwert und Tra...

Das neueste Installations-Tutorial für virtuelle Maschinen VMware 14

Zuerst gebe ich Ihnen den Aktivierungscode für VM...

Implementierung eines Random Roll Callers basierend auf JavaScript

In diesem Artikel wird der spezifische JavaScript...

Handbuch zur MySQL-Volltextindizierung

Die Volltextindizierung erfordert eine spezielle ...

Implementierung der Bereitstellung eines privaten Docker-Warehouse-Registrars

Da immer mehr Docker-Images verwendet werden, mus...

Beispiel für eine einfache Operation einer MySQL-Abfrageanweisung

Dieser Artikel veranschaulicht anhand von Beispie...

Anwendung schöner Stylesheets bei der Erstellung von XHTML+CSS-Webseiten

Dies ist ein Artikel, der vor langer Zeit geschrie...

Ubuntu 16.04 mysql5.7.17 öffnet Remote-Port 3306

Aktivieren Sie den Remotezugriff auf MySQL MySQL-...

So ändern Sie den iTunes-Sicherungspfad unter Windows

0. Vorbereitung: • Schließen Sie iTunes • Beenden...