Lassen Sie uns ausführlich über die gemeinsame MySQL-Abfrage sprechen

Lassen Sie uns ausführlich über die gemeinsame MySQL-Abfrage sprechen

Union-Abfrage

Mit Union können Tabellen zusammengeführt werden, die mit zwei oder mehr Select-Anweisungen abgefragt wurden, und doppelte Zeilen in den Tabellen eliminiert werden.

Die Select-Anweisung muss die gleiche Anzahl Spalten mit dem gleichen Datentyp haben.

1. Fragen Sie die ID und den Namen jeder Provinz in China ab

wählen Sie ProID,ProName aus T_Province

2. ID und Name aller bezirksfreien Städte in der Provinz Hunan

wähle CityID,CityName aus T_City
wobei ProID = (
    Wählen Sie ProID aus T_Province, wobei ProName = "湖南省"
);

3. Kombinieren Sie sie mit Union

wählen Sie ProID,ProName aus T_Province
Union
wähle CityID,CityName aus T_City
wobei ProID = (
    Wählen Sie ProID aus T_Province, wobei ProName = "湖南省"
);

Es ergibt sich die Vereinigungsmenge der beiden Abfrageergebnisse.

Die Spaltennamen im kombinierten Satz einer UNION sind immer gleich den Spaltennamen in der ersten SELECT-Anweisung in der UNION.

Union-Abfrage Union alle

wählen Sie ProID,ProName aus T_Province
Vereinigung alle
wähle CityID,CityName aus T_City
wobei ProID = (
    Wählen Sie ProID aus T_Province, wobei ProName = "湖南省"
);

Bei Verwendung von „Union All“ werden doppelte Zeilen nicht eliminiert.

Innerer Join einer gemeinsamen Abfrage

1. Überprüfen Sie, wie viele bezirksfreie Städte es in der Provinz Hubei gibt

Keine Union-Abfrage erforderlich:

wähle count(CityID) aus T_City
wobei ProID = (wählen Sie ProID aus T_Province, wobei ProName="湖北省")

Verbinden Sie die beiden Tabellen mit ProID

Wählen Sie ProName,CityName aus (
    T_Stadt tritt T_Provinz bei
    auf T_City.ProID = T_Province.ProID
)
wobei ProName="Provinz Hubei"

2. Zählen Sie die Anzahl der Städte auf Präfekturebene in jeder Provinz und geben Sie den Provinznamen und die Anzahl der Städte auf Präfekturebene aus

wähle T_City.ProID,ProName,count(CityID) als cc von(
    T_Stadt tritt T_Provinz bei
    auf T_City.ProID = T_Province.ProID
)
Gruppierung nach T_City.ProID
Sortieren nach cc absteigend;

Die in der Select-Anweisung auszugebende ProID sollte entweder T_City oder T_Province sein, andernfalls wird ein Fehler gemeldet.

Zwei Tabellen müssen eine gemeinsame „Sprache“ haben (die Spaltennamen müssen nicht notwendigerweise gleich sein), um verknüpft werden zu können.

Sie können Tabellen Aliasnamen zuweisen und den Alias ​​der Tabelle T_City auf tc und den Alias ​​der Tabelle T_Province auf tp festlegen.

Wählen Sie tc.ProID,ProName,count(CityID) als cc von(
    T_Stadt tc beitreten T_Provinz tp
    auf T_City.ProID = T_Province.ProID
)
Gruppierung nach tc.ProID
Sortieren nach cc absteigend;

3. Abfrage von Städten mit mehr als 20 Bezirken und Landkreisen und Ausgabe des Städtenamens sowie der Anzahl der Bezirke und Landkreise

wähle CityName,Anzahl(DisName) disCount von (
    T_Stadt tc beitreten T_Bezirk td
    auf tc.CityID = td.CityID
)
Gruppieren nach Städtename
mit Rabatt > 20;

Drei-Tabellen-Union-Abfrage

1. Welche Städte in welchen Provinzen sind die drei Städte mit den meisten Bezirken und Landkreisen? Die Abfrageergebnisse umfassen den Provinznamen, den Städtenamen und die Anzahl der Bezirke und Landkreise.

wählen Sie tp.ProName,tcd.CityName,tcd.ci aus
(
Wählen Sie ProID, CityName, Anzahl (ID) ci aus (T_City tc, verbinde T_District td auf tc.CityID = td.CityID). 
 
   Gruppierung nach tc.CityID
Sortieren nach ci desc
Grenze 3
)tcd
Treten Sie T_Province tp auf tcd.ProID = tp.ProID bei;

Gemeinsame Abfrage Left Join und Right Join

Der innere Join basiert auf den gemeinsamen Teilen der linken und rechten Tabelle.

Der linke Join basiert auf den gemeinsamen Teilen der linken und rechten Tabelle sowie den eindeutigen Teilen der linken Tabelle.

Ein rechter Join basiert auf den gemeinsamen Teilen der linken und rechten Tabelle sowie den eindeutigen Teilen der rechten Tabelle.

Abfrage aller Provinzen und ihrer Städteinformationen

wähle * aus(
T_Provinz tp beitreten T_Stadt tc
ein tp.ProID = tc.ProID
);

Abfrage aller Provinzen und ihrer Städte sowie Provinzen ohne Städte

wähle * aus(
T_Provinz tp links beitreten T_Stadt tc
ein tp.ProID = tc.ProID
);

Abfrage aller Provinzen und ihrer Stadtinformationen sowie Stadtinformationen ohne Provinzen

wähle * aus(
T_Provinz tp rechts beitreten T_Stadt tc
ein tp.ProID = tc.ProID
);

Zusammenfassen

Dies ist das Ende dieses Artikels über MySQL-Joint-Abfragen. Weitere relevante MySQL-Joint-Abfragen finden Sie in den vorherigen Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • MySQL-Anfänger können sich von den Problemen der Gruppierungs- und Aggregationsabfragen verabschieden
  • Detaillierte Erläuterung des MySQL-Mechanismus zur gemeinsamen Abfrageoptimierung
  • Detaillierte Erläuterung der Prinzipien und Anwendungsbeispiele von MySQL-Joinabfragen, Union-Abfragen und Unterabfragen
  • Analyse von Beispielen für gemeinsame Abfragevorgänge bei MySQL für mehrere Tabellen
  • Aggregatabfrage- und Union-Abfragevorgänge für MySQL-Datenbanken

<<:  So verwenden Sie die Debouce-Anti-Shake-Funktion in Vue

>>:  Analyse der Vorteile von Klassen gegenüber IDs beim Kommentieren von HTML-Elementen

Artikel empfehlen

So implementieren Sie Datenpersistenz mit dem Vuex-Drittanbieterpaket

Zweck: Ermöglichen Sie die gleichzeitige lokale S...

Vue implementiert Login-Sprung

In diesem Artikelbeispiel wird der spezifische Co...

Wie implementiert die MySQL-Datenbank die XA-Spezifikation?

MySQL-Konsistenzprotokoll Was passiert mit nicht ...

MySQL-Datenbank löscht doppelte Daten und behält nur eine Methodeninstanz bei

1. Problemeinführung Nehmen Sie ein Szenario an, ...

Detaillierte Erläuterung der Wissenspunkte zum MySQL Strict Mode

I. Erläuterung des strikten Modus Gemäß den Einsc...

So zeigen Sie Bildinformationen in Docker an

In diesem Artikel müssen wir lernen, wie man Bild...

Vue definiert private Filter und grundlegende Nutzung

Die Methoden und Konzepte privater und globaler F...

Detaillierte Erklärung zur Verwendung der Element-el-button-Button-Komponente

1. Hintergrund Schaltflächen werden sehr häufig v...

Detaillierte Erläuterung des verschachtelten Routings im Vue-Router

Inhaltsverzeichnis Schritt 1. Konfigurieren Sie R...

Detaillierte Erklärung der Meta-Tags und ihrer Verwendung in HTML

Ich werde keine weitere Zeit mit Unsinnsgerede ve...

Detaillierte Erläuterung der MySQL-Benutzervariablen und Set-Anweisungsbeispiele

Inhaltsverzeichnis 1 Einführung in Benutzervariab...

So starten Sie Tomcat mit jsvc (als normaler Benutzer ausführen)

Einführung in jsvc In der Produktion sollte Tomca...

Vue-Kapselungskomponententool $attrs, $listeners-Verwendung

Inhaltsverzeichnis Vorwort $attrs Beispiel: $list...