Was ist der Unterschied zwischen INNER JOIN
, LEFT JOIN
, RIGHT JOIN
und FULL JOIN
in MySQL ?
Das Lesen dieses Originalartikels über Das Code-Projekt wird Ihnen viel helfen: Visuelle Darstellung von SQL-Joins .
Überprüfen Sie auch diesen Beitrag: SQL-SERVER - Bessere Leistung - LEFT JOIN oder NOT IN? .
Finden Sie das Original unter: nterschied zwischen JOIN und OUTER JOIN in MySQL .
INNER JOIN ruft alle Datensätze ab, die für beide Tabellen basierend auf dem Fremdschlüssel gelten.
LEFT JOIN ruft alle Datensätze aus der LINKEN verknüpften Tabelle ab. Wenn Sie jedoch einige Spalten aus der RECHTEN Tabelle ausgewählt haben und keine zugehörigen Datensätze vorhanden sind, enthalten diese Spalten NULL.
RIGHT JOIN ist wie oben beschrieben, ruft jedoch alle Datensätze in der RIGHT-Tabelle ab.
FULL JOIN ruft alle Datensätze aus beiden Tabellen ab und fügt NULL in die Spalten ein, in denen verwandte Datensätze in der gegenüberliegenden Tabelle nicht vorhanden sind.
Eine SQL JOIN-Klausel wird verwendet, um Zeilen aus zwei oder mehr Tabellen basierend auf einem gemeinsamen Feld zu kombinieren.
In SQL stehen verschiedene Arten von Joins zur Verfügung:
INNER JOIN : Gibt Zeilen zurück, wenn in beiden Tabellen eine Übereinstimmung vorliegt.
LEFT JOIN : Gibt alle Zeilen aus der linken Tabelle zurück, auch wenn die rechte Tabelle keine Übereinstimmungen enthält.
RIGHT JOIN : Gibt alle Zeilen aus der rechten Tabelle zurück, auch wenn die linke Tabelle keine Übereinstimmungen enthält.
FULL JOIN : Kombiniert die Ergebnisse der linken und rechten äußeren Verknüpfungen.
Die verknüpfte Tabelle enthält alle Datensätze aus beiden Tabellen und füllt NULL-Werte für fehlende Übereinstimmungen auf beiden Seiten aus.
SELF JOIN : Dient zum Verknüpfen einer Tabelle mit sich selbst, als ob die Tabelle zwei Tabellen wäre, wobei vorübergehend mindestens eine Tabelle in der SQL-Anweisung umbenannt wird.
CARTESIAN JOIN : Gibt das kartesische Produkt der Datensätze aus den zwei oder mehr verknüpften Tabellen zurück.
Wir können die ersten vier Joins in Details übernehmen:
Wir haben zwei Tabellen mit folgenden Werten.
TableA
id firstName lastName
.......................................
1 arun prasanth
2 ann antony
3 sruthy abc
6 new abc
Tabelle B
id2 age Place
................
1 24 kerala
2 24 usa
3 25 ekm
5 24 chennai
.................................................. ..................
INNER JOIN
Hinweis : Gibt den Schnittpunkt der beiden Tabellen an, d. H. Die Zeilen, die in TabelleA und TabelleB gemeinsam sind
Syntax
SELECT table1.column1, table2.column2...
FROM table1
INNER JOIN table2
ON table1.common_field = table2.common_field;
Tragen Sie es in unsere Mustertabelle ein:
SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
FROM TableA
INNER JOIN TableB
ON TableA.id = TableB.id2;
Ergebnis wird sein
firstName lastName age Place
..............................................
arun prasanth 24 kerala
ann antony 24 usa
sruthy abc 25 ekm
LEFT JOIN
Hinweis : Gibt alle ausgewählten Zeilen in Tabelle A sowie alle gemeinsamen ausgewählten Zeilen in Tabelle B an.
Syntax
SELECT table1.column1, table2.column2...
FROM table1
LEFT JOIN table2
ON table1.common_field = table2.common_field;
Tragen Sie es in unsere Mustertabelle ein:
SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
FROM TableA
LEFT JOIN TableB
ON TableA.id = TableB.id2;
Ergebnis
firstName lastName age Place
...............................................................................
arun prasanth 24 kerala
ann antony 24 usa
sruthy abc 25 ekm
new abc NULL NULL
RIGHT JOIN
Hinweis : Gibt alle ausgewählten Zeilen in Tabelle B sowie alle gemeinsamen ausgewählten Zeilen in Tabelle A an.
Syntax
SELECT table1.column1, table2.column2...
FROM table1
RIGHT JOIN table2
ON table1.common_field = table2.common_field;
Tragen Sie es in unsere Mustertabelle ein:
SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
FROM TableA
RIGHT JOIN TableB
ON TableA.id = TableB.id2;
Ergebnis
firstName lastName age Place
...............................................................................
arun prasanth 24 kerala
ann antony 24 usa
sruthy abc 25 ekm
NULL NULL 24 chennai
FULL JOIN
Hinweis : Es werden alle ausgewählten Werte aus beiden Tabellen zurückgegeben.
Syntax
SELECT table1.column1, table2.column2...
FROM table1
FULL JOIN table2
ON table1.common_field = table2.common_field;
Tragen Sie es in unsere Mustertabelle ein:
SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
FROM TableA
FULL JOIN TableB
ON TableA.id = TableB.id2;
Ergebnis
firstName lastName age Place
...............................................................................
arun prasanth 24 kerala
ann antony 24 usa
sruthy abc 25 ekm
new abc NULL NULL
NULL NULL 24 chennai
Interessante Tatsache
Für INNER ist die Reihenfolge egal
Für (LINKS, RECHTS oder VOLL) OUTER ist die Reihenfolge wichtig
Es ist besser, dies zu überprüfen Link, um interessante Details über die Reihenfolge der Beitritte zu erhalten