Heim >Datenbank >MySQL-Tutorial >Was ist der Unterschied zwischen einem linken und einem rechten Datenbank-Join?

Was ist der Unterschied zwischen einem linken und einem rechten Datenbank-Join?

清浅
清浅Original
2019-04-03 16:24:5965984Durchsuche

Der Unterschied zwischen Left-Join und Right-Join in der Datenbank lässt sich in einem Satz zusammenfassen: Left-Join, bei dem nur die rechte Tabelle betroffen ist, Right-Join, bei dem nur die linke Tabelle betroffen ist

Was ist der Unterschied zwischen einem linken und einem rechten Datenbank-Join?

[Empfohlene Kurse: MySQL-Tutorial]

Der Unterschied zwischen Left-Join und Right-Join in der Datenbank

Left Join

select * from tbl1 Left Join tbl2 where tbl1.ID = tbl2.ID

Das Suchergebnis nach Left Join besteht darin, alle Daten in Tabelle 1 und die Daten in Tabelle 2 anzuzeigen, die die Where-Bedingung erfüllen.
Kurz gesagt, Left Join wirkt sich auf die Tabelle rechts aus

Right Join (Right Join)

select * from tbl1 Right Join tbl2 where tbl1.ID = tbl2.ID

Das Abrufergebnis sind alle Daten von tbl2 Und die Daten in tbl1, die die Where-Bedingung erfüllen.
Kurz gesagt, Right Join wirkt sich auf die Tabelle auf der linken Seite aus.

Inner Join

select * FROM tbl1 INNER JOIN tbl2 ON tbl1.ID = tbl2.ID

Seine Funktion ist die gleiche wie select * from tbl1, tbl2 where tbl1.id=tbl2.id.

Anderer Inhalt:

1 Die in der WHERE-Klausel verwendete Verbindungsanweisung wird in der Datenbanksprache als implizite Verbindung bezeichnet. INNER JOIN... Der durch die ON-Klausel erzeugte Join wird als expliziter Join bezeichnet. (Andere JOIN-Parameter sind ebenfalls explizite Verbindungen.) Es gibt keinen wesentlichen Unterschied in der Verbindungsbeziehung zwischen WHERE und INNER JOIN und die Ergebnisse sind die gleichen. Mit der Standardisierung und Entwicklung von Datenbanksprachen wurden implizite Verbindungen jedoch nach und nach beseitigt. Neuere Datenbanksprachen haben implizite Verbindungen grundsätzlich aufgegeben und explizite Verbindungen übernommen.

2. Unabhängig davon, wie Sie beitreten, können Sie die Join-Klausel verwenden. Achten Sie jedoch beim Beitreten derselben Tabelle darauf, einen Alias ​​zu definieren, da sonst ein Fehler auftritt

(1) inner Join: Wird als „Effektive Verbindung“ verstanden. Es werden nur die Daten angezeigt, die in beiden Tabellen vorhanden sind. Left Join: Wird als „Mit linker Anzeige“ verstanden. Beispielsweise werden auf a.field=b.field alle Daten angezeigt das in Tabelle a existiert und alle Daten in a\b Die Daten in A und nicht in B werden als Null angezeigt

(2) rechter Join: wird als „rechts angezeigt“ verstanden, zum Beispiel auf a .field=b.field, es zeigt die Existenz in Tabelle B an. Alle Daten von und die Daten in a\b, die Daten in B und nicht in A werden als Null angezeigt

(3) vollständiger Join: Als „vollständiger Join“ werden alle Daten in den beiden Tabellen angezeigt. Tatsächlich ist es innen + (links-innen) + (rechts-innen)

3. Join kann in primäre und sekundäre unterteilt werden Tabellen Es gibt drei Arten von Outer-Joins: vollständiger Outer-Join, Left-Join und Right-Join. Ein vollständiger externer Join enthält alle Datensätze der beiden Tabellen. Der linke Join basiert auf der linken Tabelle und der rechte Join ist ergänzend. Das Gegenteil gilt für den rechten Join.

4. Im Allgemeinen gilt: Um die Leistung von Datenbankabfrageanweisungen zu verbessern, befolgen Sie die folgenden Grundsätze:

Bei Verbindungsabfragen zwischen Tabellen steht die große Tabelle an erster Stelle und die kleine Tabelle an erster Stelle.

Verwenden Sie keine Tabellenaliase Feldpräfixe zur Unterscheidung von Feldern in verschiedenen Tabellen

Einschränkungen in den Abfragebedingungen sollten vor den Tabellenverbindungsbedingungen geschrieben werden

Versuchen Sie, indizierte Felder als Abfragebedingungen zu verwenden

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen einem linken und einem rechten Datenbank-Join?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn