Zusammenfassung verschiedener gängiger Abfragebeispiele für Join-Tabellen in MySQL

Zusammenfassung verschiedener gängiger Abfragebeispiele für Join-Tabellen in MySQL

Dieser Artikel beschreibt anhand von Beispielen verschiedene gängige Join-Tabellenabfragen in MySQL. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

Normalerweise müssen wir mehrere Tabellen verbinden, um Daten abzufragen und die gewünschten Ergebnisse zu erhalten.

1. Verbindungen können in drei Kategorien unterteilt werden:

(1) Innerer Join: Join, innerer Join

(2) Äußerer Join: linker Join, linker äußerer Join, rechter Join, rechter äußerer Join, Vereinigung, Vereinigung aller

(3) Kreuzverbindung

2. Bereiten Sie die Tabelle für die Demonstration vor:

CREATE TABLE `a` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT KOMMENTAR 'ID',
 `a_name` varchar(32) DEFAULT '' COMMENT 'ein Tabellenname',
 PRIMÄRSCHLÜSSEL (`id`)
)ENGINE=InnoDB STANDARD-CHARSET=utf8mb4;

CREATE TABLE `b` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT KOMMENTAR 'ID',
 `a_id` int(11) DEFAULT '0' COMMENT 'eine Tabellen-ID',
 `b_name` varchar(32) DEFAULT '' COMMENT 'b Tabellenname',
 PRIMÄRSCHLÜSSEL (`id`)
)ENGINE=InnoDB STANDARD-CHARSET=utf8mb4;

Die Daten in Tabelle A und Tabelle B sind in der Abbildung dargestellt:

3. Innerer Join oder Join

Wählen Sie * aus einem inneren Join b auf a.id = b.a_id;
Wähle * aus A, verbinde B auf A.ID = B.A_ID.
wähle * aus a, b, wobei a.id = b.a_id;

Die Ergebnisse sind wie folgt:

Unter Inner Join versteht man die Zusammenführung von Datensätzen zweier Tabellen, die gleichzeitig bestimmte Bedingungen erfüllen. Das heißt, alle Datensätze in Tabelle A und Tabelle B, die die Bedingung a.id = b.a_id erfüllen.

Wenn ein Datensatz in Tabelle A mehreren Datensätzen in Tabelle B entspricht, werden mehrere Datensätze in Tabelle B wiederholt im Ergebnissatz angezeigt.

Wenn ein Datensatz in Tabelle B mehreren Datensätzen in Tabelle A entspricht, werden mehrere Datensätze in Tabelle A wiederholt im Ergebnissatz angezeigt.

4. Äußerer Join, Links-Join oder Rechts-Join

(1) Linker äußerer Join

Wähle * aus einem linken Join b auf a.id = b.a_id;
Wählen Sie * aus einem linken äußeren Join b auf a.id = b.a_id;

Ein Left Outer Join verwendet die Tabelle A auf der linken Seite als Primärtabelle und gibt alle Zeilen zurück, auch wenn in der Tabelle B auf der rechten Seite keine passenden Zeilen vorhanden sind.

Wenn Tabelle A auf der linken Seite keinen Datensatz in Tabelle B auf der rechten Seite finden kann, werden alle Datensätze in Tabelle A zurückgegeben und die entsprechenden Felder in Tabelle B auf Null gesetzt.

Wenn Tabelle A auf der linken Seite mehrere Datensätze in Tabelle B auf der rechten Seite findet, werden im Ergebnissatz mehrere Datensätze mit denselben Datensätzen der Tabelle A und unterschiedlichen Datensätzen der Tabelle B angezeigt.

In diesem Fall werden tatsächlich alle Datensätze der Tabelle A abgefragt, also auch diejenigen, die die Bedingungen nicht erfüllen.

Wenn wir nur die Daten in Tabelle A herausfinden möchten, die die Bedingungen erfüllen bzw. nicht erfüllen, wie sollten wir dies prüfen?

Wählen Sie * aus einem linken Join b auf a.id = b.a_id, wobei b.a_id nicht null ist;
Wählen Sie * aus einem linken äußeren Join b auf a.id = b.a_id, wobei b.a_id nicht null ist;

Die obige Anweisung fragt die Daten in Tabelle A ab, die die Bedingungen erfüllen.

Wählen Sie * aus einem linken Join b auf a.id = b.a_id, wobei b.a_id null ist;
Wählen Sie * aus einem linken äußeren Join b auf a.id = b.a_id, wobei b.a_id null ist;

Die obige Anweisung fragt die Daten in Tabelle A ab, die die Bedingungen nicht erfüllen.

(2) Rechter äußerer Join

Wähle * aus einem rechten Join b auf a.id = b.a_id;
Wählen Sie * aus einem rechten äußeren Join b auf a.id = b.a_id;

Der rechte äußere Join ist eigentlich dasselbe wie der linke äußere Join. Der Unterschied liegt in der Bestimmung der Primärtabelle. Die beiden können ineinander umgewandelt werden.

Die Beschreibung des rechten äußeren Joins ist grundsätzlich die gleiche wie die des linken äußeren Joins, deshalb werde ich hier nicht näher darauf eingehen.

(3) Vollständiger Beitritt

MySQL unterstützt keinen vollständigen Join, es gibt jedoch eine entsprechende Alternative: Left Join Union Right Join.

Wähle * von einem linken Join b auf a.id = b.a_id
Union
Wähle * aus einem rechten Join b auf a.id = b.a_id;

Ein vollständiger Join gibt alle Zeilen aus Tabelle A und Tabelle B zurück. Wenn eine Zeile in Tabelle A keine Entsprechung in Tabelle B hat oder eine Zeile in Tabelle B keine Entsprechung in Tabelle A hat, werden diese Zeilen angezeigt und nicht vorhandene Felder werden mit Null ergänzt.

Durch „Union“ werden die doppelten Zeilen zusammengeführt.

In diesem Fall werden sowohl die Datensätze angezeigt, die die Bedingungen erfüllen, als auch die Datensätze, die die Bedingungen in Tabelle A und Tabelle B nicht erfüllen.

Wenn Sie nur alle Datensätze anzeigen möchten, die die Bedingungen nicht erfüllen, verwenden Sie die folgende Anweisung:

select * from a left join b on a.id = b.a_id wobei b.a_id null ist
Union
Wählen Sie * aus einem rechten Join b auf a.id = b.a_id, wobei a.id null ist;

Wenn Sie nur alle Datensätze anzeigen möchten, die die Bedingungen erfüllen, verwenden Sie die folgende Anweisung:

select * from a left join b on a.id = b.a_id, wobei b.a_id ungleich null ist
Union
Wählen Sie * aus einem rechten Join b auf a.id = b.a_id, wobei a.id nicht null ist;

5. Querverbindungen herstellen

Ein Cross Join ist eigentlich das kartesische Produkt von Tabelle A und Tabelle B.

Wählen Sie * aus einem Cross Join b;
wähle * aus a, b;

Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „Zusammenfassung der allgemeinen MySQL-Funktionen“, „MySQL-Protokolloperationskenntnisse“, „Zusammenfassung der MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“ und „Zusammenfassung der MySQL-Datenbanksperrenkenntnisse“.

Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist.

Das könnte Sie auch interessieren:
  • Zusammenfassung der sieben MySQL JOIN-Typen
  • MySQL-Datenbankgrundlagen - Prinzip der Join-Operation
  • MySQL-Joinpufferprinzip
  • Spezifische Verwendungsanweisungen für MySQL-Joins
  • MySQL-Join-Abfragesyntax und Beispiele
  • Spezifische Verwendung der sieben JOINs von MySQL

<<:  So installieren Sie WSL2 Ubuntu20.04 unter Windows 10 und richten die Docker-Umgebung ein

>>:  Detaillierte Erklärung der Mixin-Verwendung in Vue

Artikel empfehlen

So optimieren Sie Bilder, um die Website-Leistung zu verbessern

Inhaltsverzeichnis Überblick Was ist Bildkomprimi...

Verwenden Sie Javascript, um eine dynamische QQ-Registrierungsseite zu erstellen

Inhaltsverzeichnis 1. Einleitung 1. Grundlayout 2...

Docker erstellt CMS-On-Demand-System mit Player-Funktion

Inhaltsverzeichnis Text 1. Maschine vorbereiten 2...

So setzen Sie das Zabbix-Passwort zurück (ein Schritt)

Problembeschreibung Da wir uns nicht lange bei Za...

Detailliertes Tutorial zur Installation von MySQL 5.7.26 auf CentOS7.4

In CentOS ist standardmäßig MariaDB installiert, ...

Nicht alle Pop-ups sind betrügerisch. Tipps zum Entwerfen von Website-Pop-ups

Popup-Nachrichten sind bei inländischen Internetd...

CocosCreator Erste Schritte Tutorial: Netzwerkkommunikation

Übersicht zur Netzwerkkommunikation Bei der Entwi...

Die detaillierteste Methode zur Installation von Docker auf CentOS 8

Installieren Sie Docker unter CentOS 8 Offizielle...

So implementieren Sie eine Paging-Abfrage in MySQL

SQL-Paging-Abfrage:Hintergrund Im System des Unte...

Tutorial zur HTML-Tabellenauszeichnung (48): CSS-modifizierte Tabelle

<br />Sehen wir uns nun an, wie Sie die CSS-...

So verwenden Sie den JS-Code-Compiler Monaco

Vorwort Meine Anforderungen sind Syntaxhervorhebu...

js, um die Funktion zum Hochladen von Bildern zu realisieren

Das Prinzip des Hochladens von Bildern auf dem Fr...

Docker-Bereitstellung – Springboot-Projektbeispielanalyse

Dieser Artikel stellt hauptsächlich die Beispiela...