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

Lassen Sie sich die tiefe Kopie von js verstehen

Inhaltsverzeichnis js tiefe Kopie Methode der Dat...

Beispielcode zum Konvertieren des Mysql-Abfrageergebnissatzes in JSON-Daten

Mysql konvertiert Abfrageergebnissatz in JSON-Dat...

Sicherheitsüberlegungen zur Windows-Serververwaltung

Webserver 1. Der Webserver schaltet unnötige IIS-...

MySQL zeigt ein einfaches Operationsbeispiel

Dieser Artikel beschreibt den MySQL-Show-Vorgang ...

So lösen Sie das Problem der Groß-/Kleinschreibung bei MySQL-Abfragen

Frage Als ich kürzlich ein praktisches Projekt mi...

Beispielcode zur Implementierung von Anti-Shake in Vue

Anti-Shake: Verhindert, dass wiederholte Klicks E...

So passen Sie geplante AT- und Cron-Aufgaben in Linux an

Es gibt zwei Arten von geplanten Tasks im Linux-S...

JavaScript zum Implementieren einer zeitlich begrenzten Flash-Sale-Funktion

In diesem Artikel wird der spezifische JavaScript...

So fügen Sie dem Tomcat-Dienst einen Java-Startbefehl hinzu

Mein erstes Serverprogramm Ich lerne gerade, Onli...

Verwendung und Prinzipien von Provide und Inject in Vue3

Vorwort: Beim Übergeben von Daten zwischen überge...

Zusammenfassung der MySQL-Funktionsmethode LOAD_FILE()

In MySQL liest die Funktion LOAD_FILE() eine Date...

Zwei Möglichkeiten zum Beenden von Bash im Docker-Container unter Linux

Wenn Sie Bash beenden möchten, haben Sie zwei Mög...