Wissenspunkte zum Prinzip der MySQL-Join-Abfrage

Wissenspunkte zum Prinzip der MySQL-Join-Abfrage

Mysql Join-Abfrage

1. Grundlegende Konzepte

Verbinden Sie die einzelnen Zeilen der beiden Tabellen paarweise horizontal, um die Ergebnisse aller Zeilen zu erhalten.

Annahmen:

Tabelle A hat n1 Zeilen und m1 Spalten;

Tabelle B hat n2 Zeilen und m2 Spalten;

Nachdem Tabelle A und Tabelle B „verbunden“ sind, haben wir:

n1*n2 Zeilen;

m1+m2 Spalten.

2. Das Ergebnis nach der Verbindung sieht ungefähr so ​​aus:

3. Grundform der Join-Abfrage: aus Tabelle 1 [Join-Methode] Join-Tabelle 2 [unter Join-Bedingung] Grundform der Join-Abfrage: aus Tabelle 1 [Join-Methode] Join-Tabelle 2 [unter Join-Bedingung]

1. Klassifizierung von Verbindungsanfragen

Querverbindung

Tatsächlich sind es „alle Daten“, die nach dem Verbinden zweier Tabellen gemäß dem Grundkonzept der Verbindung erhalten werden, ohne dass es zu einem „Filtern“ des Ergebnisses kommt – mit Filtern wird die Verbindungsbedingung gemeint.

Das heißt, ein Cross Join ist ein unbedingter „Join aller“ – auch als kartesisches Produkt bekannt.

Kreuzverbindungen haben im Allgemeinen keinen praktischen Wert, da nach der Verbindung der Daten die Bedeutung der einzelnen Datenzeilen „verloren“ gehen kann.

bilden:

von Tabelle1 [kreuzen] Tabelle2 verbinden;

oder:

aus Tabelle1, Tabelle2;

Innerer Join

bilden:

von Tabelle1 [inner] Verknüpfung mit Tabelle2 auf Tabelle1.Feld1 = Tabelle2.Feld2;

Bedeutung:

Holen Sie sich die Daten der Zeilen, die die festgelegten Verbindungsbedingungen (die Bedingungen nach „Ein“) im Ergebnis einer „Querverbindung“ erfüllen.

Cross Joins enthalten häufig „bedeutungslose Daten“, wie im Folgenden beschrieben:

2. Schauen Sie sich die Ergebnisse der inneren Verbindung an:

3. Das Ergebnis ist:

4. Es ist ersichtlich, dass es beim Inner Join tatsächlich darum geht, die „sinnvollen“ Datenzeilen in den Datenergebnissen eines Cross Join zu finden. Bei einem Cross Join sind einige Daten aussagekräftig, während andere bedeutungslos sind (fehlerhafte Daten).

Bitte beachten Sie jedoch:

  • 1. Diese Verbindungsbedingung wird nicht willkürlich festgelegt, sondern muss entsprechend der tatsächlichen Beziehung zwischen den Tabellen festgelegt werden. Normalerweise besteht die Beziehung darin, dass die Werte der beiden Felder mit einer "Primär- und Fremdschlüsselbeziehung" zwischen den beiden Tabellen gleich sind.
  • 2. Es ist ersichtlich, dass die Verbindungsabfrage eine inhärente logische Konsistenz mit der zuvor gelernten "Fremdschlüsselbeziehung" aufweist.
  • 3. Wenn wir jedoch einen inneren Join durchführen, ist es nicht erforderlich, dass die beiden Tabellen eine Fremdschlüsselbeziehung haben „müssen“ – wir verstehen aus praktischer Sicht lediglich, dass sie eine Fremdschlüsselbeziehung (Datenbeziehung) haben und dass ihre Beziehung hergestellt wird, wenn bei der Abfrage ein innerer Join verwendet wird. Es ist ersichtlich, dass es beim Inner Join tatsächlich darum geht, die „sinnvollen“ Datenzeilen in den Datenergebnissen eines Cross Join zu finden. Bei einem Cross Join sind einige Daten aussagekräftig, während andere bedeutungslos sind (fehlerhafte Daten).

Das könnte Sie auch interessieren:
  • Tiefgreifendes Verständnis der MySQL-Selbstverbindung und Join-Assoziation
  • Analyse der Verwendung mehrerer MySQL-Left-Join-Abfragen
  • MySQL-Optimierung: Join statt Unterabfrage verwenden
  • MySQL-Abfrageoptimierung: Einführung in das Sortierlimit für Join-Abfragen (Join-, Order-by- und Limit-Anweisung)
  • Detailliertes Tutorial zur Verwendung der JOIN-Anweisung zum Ausführen von Verbindungsvorgängen in MySQL
  • MySQL-Join-Abfragesyntax und Beispiele
  • Zusammenfassung mehrerer häufig verwendeter Verbindungsmethoden in MySQL

<<:  CentOS7-Installations-GUI-Schnittstelle und Implementierung der Remote-Verbindung

>>:  JavaScript-Canvas zum Erzielen eines Regentropfeneffekts

Artikel empfehlen

Implementierung des Docker-Buildings für Maven+Tomcat-Basisimages

Vorwort In der Java-Programmierung werden die mei...

Eine kurze Diskussion über den VUE Uni-App-Lebenszyklus

Inhaltsverzeichnis 1. Anwendungslebenszyklus 2. S...

Native JS-Implementierung der Slider-Intervallkomponente

In diesem Artikelbeispiel wird der spezifische Co...

Einführung in semantische XHTML-Tags

Der erste Punkt ist, dass Menschen die Semantik vo...

Lösung zum Vergessen des Root-Passworts von MySQL5.7 unter Windows 8.1

【Hintergrund】 Mir ist beim Lernen kürzlich etwas ...

Detaillierte Erklärung der node.js-Installation und HbuilderX-Konfiguration

Tutorial zur npm-Installation: 1. Laden Sie das N...

Verwenden von NTP zur Zeitsynchronisierung in Ubuntu

NTP ist ein TCP/IP-Protokoll zur Zeitsynchronisie...

Export- und Importvorgänge für Docker-Images

Was ist, wenn die Basis-Images bereits konfigurie...

Zusammenfassung zur Verwendung der Reduce()-Methode in JS

Inhaltsverzeichnis 1. Grammatik 2. Beispiele 3. A...

calc(), um einen Vollbild-Hintergrundinhalt mit fester Breite zu erreichen

In den letzten Jahren gab es im Webdesign einen T...