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

Lösung für die verstümmelte Anzeige von Linux SecureCRT

Sehen wir uns die Situation an, in der SecureCRT ...

Manuelle Implementierung des bidirektionalen Datenbindungsprinzips von Vue2.0

In einem Satz: Datenentführung (Object.defineProp...

Detaillierte Erklärung, wie Sie den Speicherverbrauch in MySql reduzieren können

Vorwort Standardmäßig initialisiert MySQL einen g...

HTML lädt dynamisch CSS-Stile und JS-Skripte – Beispiel

1. Dynamisches Laden von Skripten Mit der wachsen...

Trash-Cli: Befehlszeilen-Papierkorb-Tool unter Linux

Ich glaube, jeder kennt den Papierkorb, da er bei...

Vue implementiert das Methodenbeispiel der Tab-Routing-Umschaltkomponente

Vorwort In diesem Artikel wird die Verwendung des...

4 Prinzipien für sauberes und schönes Webdesign

In diesem Artikel werden diese 4 Prinzipien im Hi...

So implementieren Sie Call, Apply und Binding in nativem JS

1. Implementieren Sie den Anruf Schritt: Legen Si...

HTML-Maus-CSS-Steuerung

Im Allgemeinen wird die Maus als nach oben gericht...

Design-Story: Der Wachmann, der sich Nummernschilder nicht merken kann

<br />Um die Fahrzeuge zu regeln, die in die...

Schritte zum Reparieren einer Beschädigung der Datei grub.cfg im Linux-System

Inhaltsverzeichnis 1. Einführung in die grub.cfg-...