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

Spezifische Verwendung von pthread_create in Linux zum Erstellen von Threads

pthread_create-Funktion Funktionseinführung pthre...

Zusammenfassung von 6 Methoden zur Anzeige von Linux-Protokollen

Als Backend-Programmierer haben Sie an vielen Ste...

Einige Erfahrungen zum Aktivieren von HTTPS

Da sich die heimische Netzwerkumgebung immer weit...

Verwendung von TypeScript-Generics

Inhaltsverzeichnis 1. Einfach zu bedienen 2. Verw...

Zusammenfassung einiger gängiger Methoden des JavaScript-Arrays

Inhaltsverzeichnis 1. So erstellen Sie ein Array ...

9 großartige JavaScript-Framework-Skripte zum Zeichnen von Diagrammen im Web

9 großartige JavaScript-Framework-Skripte zum Zei...

So installieren Sie Graphviz und beginnen mit dem Tutorial unter Windows

Herunterladen und installierenUmgebungsvariablen ...

WeChat-Applet-Entwicklung Formularvalidierung WxValidate-Nutzung

Ich persönlich bin der Meinung, dass das Entwickl...

So installieren Sie PHP7.4 und Nginx auf Centos

Vorbereiten 1. Laden Sie das erforderliche Instal...

Windows 2019 Aktivierungs-Tutorial (Office2019)

Vor ein paar Tagen habe ich erfahren, dass die of...

Probleme und Lösungen bei der Installation und Verwendung von VMware

Die virtuelle Maschine wird verwendet oder es kan...