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

Ein kurzer Vortrag über Rx-responsive Programmierung

Inhaltsverzeichnis 1. Beobachtbar 2. Funktionen h...

Detaillierte Schritte zur Verwendung von AES.js in Vue

Verwendung der AES-Verschlüsselung Verschlüsselun...

Auszeichnungssprache - für

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

MySQL Server 8.0.13.0 Installations-Tutorial mit Bildern und Text

Installieren Sie 8.0.13 basierend auf MySQL 6.1.3...

So führen Sie das Springboot-Projekt im Docker aus

1. Klicken Sie unten in IDEA auf Terminal und geb...

MySQL-Lösung zum Erstellen eines horizontalen Histogramms

Vorwort Histogramme sind grundlegende statistisch...

Vue.js implementiert eine einfache Timerfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung der React-Ereignisbindung

1. Was ist In react Anwendungen werden Ereignisna...

Analyse der Schwierigkeiten im Hot-Standby der MySQL-Datenbank

Ich habe Ihnen zuvor die Konfigurationsmethode fü...