Was ist eine kombinierte Abfrage?
Die meisten SQL-Abfragen enthalten nur eine einzige SELECT-Anweisung, die Daten aus einer oder mehreren Tabellen zurückgibt. Mit MySQL können Sie auch mehrere Abfragen (mehrere SELECT-Anweisungen) ausführen und die Ergebnisse als einzelne Abfrageergebnismenge zurückgeben. Diese kombinierten Abfragen werden häufig als Unions- oder zusammengesetzte Abfragen bezeichnet.
Es gibt zwei grundlegende Situationen, in denen kombinierte Abfragen verwendet werden müssen:
1. Rückgabe ähnlich strukturierter Daten aus verschiedenen Tabellen in einer einzigen Abfrage; Die Tabelle führt mehrere Abfragen aus und gibt Daten als eine einzige Abfrage zurück.
Abfragen und mehrere WHERE-Bedingungen kombinieren In den meisten Fällen erfüllt die Kombination zweier Abfragen in derselben Tabelle die gleiche Aufgabe wie eine einzelne Abfrage mit mehreren WHERE-Klauselbedingungen. Mit anderen Worten: Jede SELECT-Anweisung mit mehreren WHERE-Klauseln kann als kombinierte Abfrage angegeben werden, wie Sie in den folgenden Absätzen sehen können. Beide Techniken funktionieren bei unterschiedlichen Abfragen unterschiedlich. Daher sollten Sie beide Techniken ausprobieren, um festzustellen, welche für eine bestimmte Abfrage die bessere Leistung erbringt.
So erstellen Sie eine kombinierte AbfrageMit dem UNION-Operator können Sie mehrere SQL-Abfragen kombinieren. Mit UNION können Sie mehrere SELECT-Anweisungen angeben und deren Ergebnisse in einem einzigen Ergebnissatz kombinieren.
UNION verwenden
UNION zu verwenden ist sehr einfach. Es ist lediglich erforderlich, jede SELECT-Anweisung anzugeben und zwischen jeder Anweisung das Schlüsselwort UNION einzufügen.
Angenommen, Sie benötigen eine Liste aller Artikel mit einem Preis kleiner oder gleich 5 und möchten außerdem alle von den Lieferanten 1001 und 1002 hergestellten Artikel (unabhängig vom Preis) einbeziehen. Natürlich kann dies mit einer WHERE-Klausel erfolgen, aber dieses Mal verwenden wir UNION .
Wie bereits erwähnt, erfordert das Erstellen einer UNION das Schreiben mehrerer SELECT-Anweisungen. Schauen wir uns zunächst eine einzelne Anweisung an:
Eingabe:
Ausgabe:select vend_id,prod_id,prod_price from products where prod_price <= 5;
Eingabe:
Ausgabe:
select vend_id,prod_id,prod_price from products where vend_id in (1001,1002);
Analyse: Das erste SELECT ruft alle Artikel ab, deren Preis nicht höher als 5 ist. Das zweite SELECT verwendet IN, um alle von den Lieferanten 1001 und 1002 produzierten Artikel zu finden.
Um diese beiden Aussagen zu kombinieren, gehen Sie wie folgt vor:
Eingabe:
Ausgabe:select vend_id,prod_id,prod_price from products where prod_price <= 5 union select vend_id,prod_id,prod_price from products where vend_id in (1001,1002);
Analyse: Diese Anweisung besteht aus den beiden vorherigen SELECT-Anweisungen, getrennt durch das Schlüsselwort UNION. UNION weist MySQL an, zwei SELECT-Anweisungen auszuführen und die Ausgabe in einer einzigen Abfrageergebnismenge zu kombinieren.
Als Referenz ist hier dieselbe Abfrage, die mehrere WHERE-Klauseln anstelle von UNION verwendet:
Eingabe:
In diesem einfachen Beispiel kann die Verwendung von UNION komplexer sein als die WHERE-Klausel zu verwenden. Bei komplexeren Filtern oder wenn Daten aus mehreren Tabellen statt aus einer einzelnen Tabelle abgerufen werden, kann die Verwendung von UNION den Prozess jedoch vereinfachen.select vend_id,prod_id,prod_price from products where prod_price <= 5 or vend_id in (1001,1002);
Das obige ist der detaillierte Inhalt vonKombinierte MySQL-Abfrage: Was ist eine kombinierte Abfrage? So erstellen Sie eine kombinierte Abfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!