Detaillierte Erläuterung der kombinierten MySQL-Abfrage

Detaillierte Erläuterung der kombinierten MySQL-Abfrage

Verwenden von UNION

Die meisten SQL-Abfragen bestehen aus einer einzelnen SELECT-Anweisung, die Daten aus einer oder mehreren Tabellen zurückgibt. MySQL ermöglicht Ihnen auch, mehrere Abfragen (mehrere SELECT-Anweisungen) auszuführen und die Ergebnisse als einzigen Abfrageergebnissatz zurückzugeben. Diese kombinierten Abfragen werden oft als Vereinigungen bezeichnet.

Es gibt zwei Situationen, in denen kombinierte Abfragen erforderlich sind:

  • Geben Sie ähnlich strukturierte Daten aus verschiedenen Tabellen in einer einzigen Tabellenabfrage zurück.
  • Führen Sie mehrere Abfragen für eine einzelne Tabelle aus und geben Sie die Daten als einzelne Abfrage zurück.

Kombinieren von Abfragen und mehreren WHERE-Bedingungen: In den meisten Fällen führt das Kombinieren zweier Abfragen für dieselbe Tabelle zum selben Ergebnis wie eine einzelne Abfrage mit mehreren WHERE-Klauselbedingungen.

Mit dem UNION-Operator können Sie mehrere SQL-Abfragen kombinieren. Dazu müssen Sie nur die einzelnen SELECT-Anweisungen eingeben und zwischen jede Anweisung das Schlüsselwort UNION setzen.

Zum Beispiel:

Angenommen, wir benötigen eine Liste aller Artikel mit einem Preis kleiner oder gleich 5 und möchten auch alle Artikel einschließen, die von den Lieferanten 1001 und 1002 hergestellt werden. Natürlich können wir die WHERE-Klausel verwenden, um dies zu erreichen, aber hier verwenden wir UNION

  • Hier ist eine Kombination aus zwei Aussagen
Wählen Sie Verkaufs-ID, Produkt-ID, Produktpreis aus den Produkten aus, wobei „Produktpreis <= 5“ ist.

Wählen Sie vend_id, prod_id, prod_price FROM products WHERE vend_id IN (1001, 1002);

  • Sie können die folgende Anweisung verwenden
Wählen Sie vend_id, prod_id, prod_price FROM Produkte WHERE Produktpreis <= 5 UNION Wählen Sie vend_id, prod_id, prod_price FROM Produkte WHERE vend_id IN (1001, 1002);

  • Ebenso können Sie die WHERE-Klausel verwenden
Wählen Sie vend_id, prod_id, prod_price FROM products WHERE prod_price <= 5 OR vend_id IN (1001, 1002);

UNION-Regeln

  • UNION muss aus zwei oder mehr SELECT-Anweisungen bestehen, die durch das Schlüsselwort UNION getrennt sind.
  • Jede Abfrage in einer UNION muss dieselben Spalten, Ausdrücke oder Aggregatfunktionen enthalten (die Spalten müssen nicht in derselben Reihenfolge aufgelistet sein).
  • Spaltendatentypen müssen kompatibel sein: Sie müssen nicht vom gleichen Typ sein, aber es müssen Typen sein, die das DBMS implizit konvertieren kann (unterschiedliche numerische Typen oder unterschiedliche Datumstypen).

Doppelte Zeilen einschließen oder unterdrücken

UNION entfernt automatisch doppelte Zeilen aus dem Abfrageergebnissatz. Wenn Sie alle übereinstimmenden Zeilen zurückgeben möchten, verwenden Sie UNION ALL.

Wählen Sie vend_id, prod_id, prod_price FROM Produkte WHERE Produktpreis <= 5 UNION ALL Wählen Sie vend_id, prod_id, prod_price FROM Produkte WHERE vend_id IN (1001, 1002);

Sortieren kombinierter Abfrageergebnisse

Die Ausgabe der SELECT-Anweisung wird mithilfe der ORDER BY-Klausel sortiert. Wenn Sie UNION zum Kombinieren von Abfragen verwenden, kann nur eine ORDER BY-Klausel verwendet werden. Es muss nach der letzten SELECT-Anweisung erscheinen. Mehrere ORDER BY-Klauseln sind nicht zulässig.

Wählen Sie vend_id, prod_id, prod_price FROM Produkte WHERE Produktpreis <= 5 UNION Wählen Sie vend_id, prod_id, prod_price FROM Produkte WHERE vend_id IN (1001, 1002) ORDER BY vend_id, prod_price;

Oben finden Sie eine ausführliche Erläuterung der kombinierten MySQL-Abfrage. Weitere Informationen zur kombinierten MySQL-Abfrage finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung von MySQL-Unterabfragen (verschachtelte Abfragen), Verknüpfungstabellen und kombinierten Abfragen
  • MySQL-Abfragedaten stündlich, geben Sie 0 ein, wenn keine Daten vorhanden sind
  • Detaillierte Erläuterung der MySQL sql_mode-Abfrage und -Einstellung
  • MySQL-Unterabfragen und gruppierte Abfragen
  • MySQL-Gruppierungsabfragen und Aggregatfunktionen
  • Zusammenfassung der zugehörigen Funktionen für JSON-Ergebnisse von MySQL-Abfragen
  • Sortierung und Paginierung von MySQL-Abfragen
  • MySql-Abfragezeitraummethode
  • Grundlegendes Tutorial zu Multi-Table-Join-Abfragen in MySQL
  • Unterabfragebeispiele in MySQL

<<:  Implementierungsprinzip und Prozessanalyse der TCP-Leistungsoptimierung

>>:  Auszeichnungssprache - CSS-Stile für Text festlegen

Artikel empfehlen

Lösung, wenn Docker plötzlich vom externen Netzwerk nicht mehr erreichbar ist

Nach den Methoden der Meister wurde die Ursache g...

jQuery-Plugin zum Erzielen eines Karusselleffekts

Jeden Tag ein jQuery-Plugin - jQuery-Plugin zur I...

Detaillierte Erklärung der Set-Datenstruktur von JavaScript

Inhaltsverzeichnis 1. Was ist Set 2. Konstruktor ...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.17

Dieser Artikel enthält das grafische Tutorial zur...

So setzen Sie das Root-Passwort in CentOS7 zurück

Beim Verschieben von Bausteinen treten verschiede...

Vue implementiert bidirektionale Datenbindung

In diesem Artikelbeispiel wird der spezifische Co...

Sprechen Sie über wichtige Unterverzeichnisprobleme im Linux-System

/etc/fstab Partitionen/Festplatten automatisch mo...

So stellen Sie die MySQL5.7-Kodierung auf utf8mb4 ein

Ich bin vor kurzem auf ein Problem gestoßen. Die ...

Einige Vorschläge zur Linux-Systemoptimierung (Kerneloptimierung)

Swap deaktivieren Wenn auf dem Server ein Datenba...

So erhalten Sie Root-Berechtigungen in einem Docker-Container

Zunächst muss Ihr Container laufen Sie können die...

Mehrere Möglichkeiten zum Sichern einer MySql-Datenbank

mysqldump-Tool-Sicherung Sichern Sie die gesamte ...