it-swarm.com.de

Was ist der Unterschied zwischen INNER JOIN, LEFT JOIN, RIGHT JOIN und FULL JOIN?

Was ist der Unterschied zwischen INNER JOIN, LEFT JOIN, RIGHT JOIN und FULL JOIN in MySQL ?

1533
Lion King

Das Lesen dieses Originalartikels über Das Code-Projekt wird Ihnen viel helfen: Visuelle Darstellung von SQL-Joins .

alt text

Ü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 .

3036
Pranay Rana

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.

653
Brian Leeming

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

623