In unserem Entwicklungsprozess verwenden wir häufig mehrere Abfrageergebnisse, die direkt angezeigt werden sollen. Wie sollten wir also abfragen? In diesem Artikel geht es um das Erlernen von SQL. Werfen wir einen Blick auf das Schlüsselwort UNION in SQL und hoffen, dass es für alle hilfreich ist.
Das Schlüsselwort UNION in SQL zeigt die Ergebnisse mehrerer Abfragebedingungen an.
Die chinesische Bedeutung von UNION ist Vereinigung, also das Zusammenführen der Ergebnisse von zwei oder mehr SELECT-Anweisungen. Die Verwendungstipps lauten wie folgt:
Verwenden Sie wie unten gezeigt die im vorherigen Kapitel eingeführten Daten als Demonstrationsdaten
Erstellen Sie Tabellen separats_user
和表s_user_1
CREATE TABLE `s_user` ( `userid` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(255) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `pass_word` varchar(255) DEFAULT NULL, `salt` varchar(255) DEFAULT NULL, `state` varchar(255) DEFAULT NULL, `create_time` datetime DEFAULT NULL, PRIMARY KEY (`userid`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
Die Testdaten lauten wie folgt:
INSERT INTO `test`.`s_user`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (1, '小米', '小米', '123123', '123', '1', '2022-02-10 19:48:43'); INSERT INTO `test`.`s_user`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (2, '小白', '小白', '123123', '123', '1', '2022-02-10 19:48:43'); INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (1, '小红', '小红', '123123', '123', '1', '2022-02-10 19:48:43'); INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (2, '小黄', '小黄', '123123', '123', '1', '2022-02-10 19:48:43');
Jede SELECT-Anweisung Innerhalb von UNION muss die gleiche Anzahl von Spalten vorhanden sein: Fragen Sie zuerst SQL
SELECT * FROM `s_user` UNION SELECT * FROM `s_user_1`
mit denselben Spalten ab, um alle Spalten abzufragen. Sie können sehen, dass die Ausführungsergebnisse wie folgt sind.
Wenn die erste Abfrage alle Spalten und die zweite Abfrage drei Felder betrifft, was ist das Abfrageergebnis? Führen Sie nun die folgende SQL aus:
Falsche Verwendung
SELECT * FROM `s_user` UNION SELECT userid,name,pass_word FROM `s_user_1`
Fehler Nachricht: Die SELECT-Anweisung wird verwendet, um eine unterschiedliche Anzahl von Spalten abzufragen
Richtige Verwendung
SELECT userid,name,pass_word FROM `s_user` UNION SELECT userid,name,pass_word FROM `s_user_1`
Wir haben oben gesehen, dass die Anzahl der Spalten in mehreren Abfragen gleich sein muss, dann die Anzahl der Spalten abgefragt Wenn sie gleich sind, aber die Datentypen der Abfragefelder unterschiedlich sind, können sie dann normal verarbeitet werden? Ersetzen Sie als Nächstes pass_word in der s_user-Abfrage durch create_time to query. Sie können es nach der Abfrage sehen. Bei SQL-Abfragen ist der Datentyp der Spalte irrelevant. Im tatsächlichen Geschäft werden sie natürlich nicht auf unterschiedliche Typen festgelegt.
SELECT userid,name,create_time FROM `s_user` UNION SELECT pass_word,name,userid FROM `s_user_1`
Hat es bei der Abfrage das UNION-Schlüsselwort mit der Reihenfolge der Spalten zu tun? Also lasst es uns testen. Sie sehen, dass die Ausführungsergebnisse nichts mit der Reihenfolge der Spalten zu tun haben. Im tatsächlichen Geschäft werden mehrere Abfragen zusammengeführt, daher muss die Reihenfolge der Spalten, die wir im Projekt definieren, konsistent sein.
SELECT create_time,userid,name FROM `s_user` UNION SELECT pass_word,name,userid FROM `s_user_1`
Um den Unterschied zwischen UNION und UNION ALL zu testen, müssen Sie [Xiaobai] in der Datentabelle s_user_1 hinzufügen, und [Xiaobai] in der Tabelle s_user sind beide vorhanden in der Datenbank, und die beiden werden ein was für unterschiedliches Ergebnis haben.
INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (3, '小白', '小白', '123123', '123', '1', '2022-02-10 19:48:43');
Erste Ausführung:
SELECT user_name,name,pass_word,salt FROM `s_user` UNION SELECT user_name,name,pass_word,salt FROM `s_user_1`
Ausführungsergebnis:
Erneut ausführen
SELECT user_name,name,pass_word,salt FROM `s_user` UNION ALL SELECT user_name,name,pass_word,salt FROM `s_user_1`
Ausführungsergebnis:
Sie können sehen, dass doppelte Elemente entfernt wurden ON-Zuordnung und UNION ALL-Abfrage werden angezeigt Alle Werte, keine Duplikate entfernt.
Okay, das Obige ist die Verwendung des UNION-Schlüsselworts in SQL. Vielen Dank fürs Lesen. Wenn es Ihnen gefällt, liken Sie es bitte und speichern Sie es. Wenn es Mängel gibt, kommentieren und korrigieren Sie diese bitte. Bis zum nächsten Mal.
Empfohlenes Lernen: MySQL-Video-Tutorial
Das obige ist der detaillierte Inhalt vonSQL-Einführung: Eine kurze Analyse der Verwendung des Schlüsselworts UNION. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!