Heim  >  Artikel  >  Datenbank  >  Was ist eine MySQL-Verbindungsabfrage?

Was ist eine MySQL-Verbindungsabfrage?

王林
王林nach vorne
2023-05-30 23:50:421429Durchsuche

Inner JOIN

  • Inner JOIN ist der am häufigsten verwendete Verbindungsvorgang. Mathematisch lässt sich dieser Satz wie folgt umschreiben: Aus der Perspektive der Mengentheorie benötigen wir den Schnittpunkt zweier Mengen und aus der Perspektive des kartesischen Produkts müssen wir die Elemente des kartesischen Produkts herausfiltern, die die ON-Bedingung erfüllen.

  • Inner Joins ähneln meiner Meinung nach Equijoins und sind ein besonderer Join unter den Inner Joins.

Der Unterschied zwischen Natural Joins und Equijoins. Was ist Natural Join?

    Natural Join ist ein spezieller Equijoin, der erfordert, dass die in zwei Beziehungen verglichenen Komponenten derselben Attributgruppe angehören müssen und doppelte Attributspalten aus dem Ergebnis entfernt werden.
  • Was ist ein Equijoin?

    Equijoin ist eine gängige Verbindungsmethode für relationale Operations-Join-Operationen. Es handelt sich um einen Sonderfall einer bedingten Verbindung (oder θ-Verbindung), wenn der Verbindungsoperator „=“ ist, d.
Fragen Sie die Daten mit den gleichen Attributen C B D in Tabelle aaa und Tabelle bbb ab

Von oben 2 Aus den Ergebnissen können wir schließen, dass Equijoin bestimmte Daten mit gleichen Werten aus der Schnittmenge zweier Tabellen auswählt. Unter Natural Join versteht man die Aufnahme von Daten mit denselben Attributen und gleichen Attributwerten in zwei Tabellen und die Eliminierung derselben Attributspalten.

Was ist eine MySQL-Verbindungsabfrage?So implementieren Sie Inner Join

Der erste Weg: where

SElect*from aaa,bbb WHERE aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E

Der zweite Weg: Inner JoinWas ist eine MySQL-Verbindungsabfrage?

-- 自然连接用关键字 natural join
SELECT*from aaa natural join bbb;

Der dritte Weg: Join

SElect*from aaa,bbb WHERE aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E

Der vierte Weg: STRAIGHT_JOIN

select*from aaa inner join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;

Die folgenden drei haben den gleichen Effekt: Die dritte Art kann als Abkürzung der zweiten Art verstanden werden. Der Hauptunterschied zwischen dem vierten und dem zweiten Typ besteht in den unterschiedlichen Einfügemethoden. Die Leistung des vierten Typs ist etwas geringer vollständiger äußerer Join. Sie können in SQL-Anweisungen Left-Joins, Right-Joins und Full-Joins verwenden, um diese Funktion zu erreichen.

Was ist eine MySQL-Verbindungsabfrage?Left-Join

Was ist ein Left-Join?

LEFT JOIN bedeutet, den Schnittpunkt von Tabelle A und Tabelle B zu nehmen und die verbleibenden Daten in die linke Tabelle aufzunehmen. Noch aus der Perspektive des kartesischen Produkts müssen wir zuerst die Datensätze auswählen, die die Bedingungen der ON-Klausel erfüllen, und dann die verbleibenden Datensätze in Tabelle A auf der linken Seite hinzufügen

Was ist eine MySQL-Verbindungsabfrage?

Code-Implementierung:

select*from aaa join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;

Ergebnis:

Right Join

Was ist ein Left Join?

In ähnlicher Weise entspricht RIGHT JOIN dem Erhalten der Schnittmenge von Tabelle A und Tabelle B sowie der verbleibenden Daten von Tabelle B. Bei der Beschreibung der richtigen Verknüpfung können Sie aus der Perspektive des kartesischen Produkts beginnen, d. h. die Datensätze auswählen, die die EIN-Bedingung erfüllen, und ihnen die nicht ausgewählten Datensätze in der rechten Tabelle hinzufügen
select*from aaa STRAIGHT_JOIN bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;

Ergebnis:

  • Full Join
Full Outer Join besteht darin, die Vereinigung der Mengen zweier Tabellen A und B zu finden. Aus Sicht des kartesischen Produkts besteht es darin, aus dem kartesischen Produkt die Datensätze auszuwählen, für die die ON-Klauselbedingung zutrifft, dann die verbleibenden Datensätze in der linken Tabelle hinzuzufügen und schließlich die verbleibenden Datensätze in der rechten Tabelle hinzuzufügen. Darüber hinaus unterstützt MySQL kein OUTER JOIN, wir können jedoch UNION-Operationen für die Ergebnisse von Left-Joins und Right-Joins implementieren.

Code-Implementierung:

select*from aaa left join bbb on aaa.C=bbb.C and aaa.D=bbb.D and aaa.E=bbb.E;

Ergebnis: Was ist eine MySQL-Verbindungsabfrage?

Das obige ist der detaillierte Inhalt vonWas ist eine MySQL-Verbindungsabfrage?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen