Überblick UNION Mit dem Schlüsselwort „Verbindungsdatensatz“ können zwei Abfrageergebnissätze zu einem einzigen zusammengefügt werden, wobei identische Datensätze herausgefiltert werden. UNION ALLE Mit dem Schlüsselwort „Connection Dataset“ können zwei Abfrageergebnissätze zu einem zusammengefügt werden, ohne identische Datensätze herauszufiltern. Als ich heute eine Anfrage erhielt, verwendete ich UNION zur Abfrage und stellte fest, dass zwei Abfragen, die jeweils mit ORDER BY verbunden wurden, nicht erfolgreich sortiert werden konnten. Nach viel Mühe habe ich es aufgezeichnet. Tabellenstruktur und Daten -- Tabelle erstellen CREATE TABLE test_user ( ID int(11) NICHT NULL AUTO_INCREMENT, USER_ID int(11) DEFAULT NULL COMMENT 'Benutzerkonto', USER_NAME varchar(255) DEFAULT NULL COMMENT 'Benutzername', AGE int(5) DEFAULT NULL COMMENT 'Alter', COMMENT varchar(255) DEFAULT NULL COMMENT 'Einführung', PRIMÄRSCHLÜSSEL (ID) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; -- Dateneinfügungsanweisung INSERT INTO test_user (ID, USER_ID, USER_NAME, AGE, COMMENT) VALUES ('1', '111', 'Glücklicher Neuling', '18', 'Heute sehr glücklich'); INSERT INTO test_user (ID, USER_ID, USER_NAME, ALTER, KOMMENTAR) VALUES ('2', '222', 'Trauriger Neuling', '21', 'Heute sehr traurig'); INSERT INTO test_user (ID, USER_ID, USER_NAME, ALTER, KOMMENTAR) VALUES ('3', '333', 'Ernsthafter Anfänger', '30', 'Heute sehr ernst'); INSERT INTO test_user (ID, USER_ID, USER_NAME, ALTER, KOMMENTAR) VALUES ('4', '444', 'Glücklicher Neuling', '18', 'Ich bin heute sehr glücklich'); INSERT INTO test_user (ID, USER_ID, USER_NAME, ALTER, KOMMENTAR) VALUES ('5', '555', 'Ernsthafter Anfänger', '21', 'Heute ist ein sehr ernster Tag'); Die Standardtabellendaten werden wie folgt angezeigt Ausführen einer Ergebnisanalyse -- Abfrage 1 WÄHLEN * AUS test_benutzer u NACH ALTER ORDNEN Ergebnissatz 1 -- Abfrage 2 -- Verwenden von UNION ( WÄHLEN * AUS test_benutzer u NACH ALTER ORDNEN ) UNION ( WÄHLEN * AUS test_benutzer u NACH ALTER ORDNEN ); -- Abfrage 3 -- Verwenden von UNION ALL ( WÄHLEN * AUS test_benutzer u NACH ALTER ORDNEN ) UNION ALLE ( WÄHLEN * AUS test_benutzer u NACH ALTER ORDNEN ) Ergebnissatz 2: Verwenden von UNION Da UNION identische Datensätze zusammenfasst (was dieselbe Wirkung hat wie DISTINCT), werden hier nur fünf Datensätze angezeigt. Ergebnissatz 3: Verwenden von UNION ALL Wenn Sie UNION ALL verwenden und sortieren müssen, müssen Sie es als Unterabfrage abfragen. -- Abfrage 4 -- UNION ALL als Unterabfrage verwenden und SELECT sortieren * AUS ( ( WÄHLEN * AUS test_benutzer u BESTELLEN BIS ALTER ) UNION ALLE ( WÄHLEN * AUS test_benutzer u BESTELLEN BIS ALTER ) ) BESTELLEN BIS ALTER; Ergebnissatz 4 verbessern Nachdem ich nach relevanten Erfahrungen gesucht hatte, stellte ich fest, dass ich etwas Unnötiges getan hatte. Es stellte sich heraus, dass die Sortierung auch ohne Verwendung einer Unterabfrage durchgeführt werden kann: -- Abfrage 5 -- Die erste Abfrage verwendet keine Sortierung. Wenn dies der Fall ist, wird ein Fehler ohne Klammern gemeldet (deshalb wollte ich vorher eine Unterabfrage verwenden und habe nicht an diese Methode gedacht) WÄHLEN * AUS test_benutzer u UNION ALLE WÄHLEN * AUS test_benutzer u BESTELLEN BIS ALTER Der Ergebnisset ist derselbe wie Ergebnisset 4, daher wird das Ergebnis hier nicht eingefügt. abschließend Wenn wir die Anweisung UNION (oder UNION ALL) verwenden und die beiden Ergebnismengen von UNION separat sortiert und dann zusammengeführt werden, ist ihr ORDER BY ungültig. Wenn wir sortieren möchten, gibt es zwei Möglichkeiten:
Referenzlinks cnblogs: Verwendung von UNION und UNION ALL in MySQL 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:
|
>>: Vue-Elternkomponente ruft Funktionsimplementierung der Unterkomponente auf
Vorwort Die am häufigsten verwendete Datenbank in...
Die Aufgabe der Parallelitätskontrolle in einem D...
Das Element UI-Tabelle verfügt nicht über eine in...
Ubuntu16.04: Pip installieren und deinstallieren ...
Vor Kurzem bereitete sich das Unternehmen auf die...
Problembeschreibung Kürzlich meldete ein Host die...
Warum Vim lernen? Linux verfügt über eine große A...
Inhaltsverzeichnis Kein Schalter, keine komplexen...
Inhaltsverzeichnis Voraussetzungen RN übergibt We...
1. Problembeschreibung Aus Sicherheitsgründen öff...
Zusätzliche Erklärung, Fremdschlüssel: Verwenden ...
In diesem Artikelbeispiel wird der spezifische Co...
Vorwort Wenn wir einen MySQL-Cluster erstellen, m...
Die meisten Navigationsleisten sind horizontal an...
Verwendung von Anker-Tags: Als Ankerlink wird ein ...