580 Stimmen

Was ist der Unterschied zwischen Left, Right, Outer und Inner Joins?

Ich frage mich, wie man all diese verschiedenen Verbindungen unterscheiden kann ...

7voto

lfvv Punkte 1449

Eine bessere Sichtbarkeit könnte helfen. Ein Beispiel:

Tabelle 1:

ID_STUDENT STUDENT_NAME

1               Raony
2               Diogo
3               Eduardo
4               Luiz

Tabelle 2:

ID_STUDENT LOCKER

3               l1
4               l2
5               l3

Was ich bekomme, wenn ich das tue:

-Inner join of Table 1 and Table 2: 

    - Inner join returns both tables merged only when the key 
      (ID_STUDENT) exists in both tables

    ID_STUDENT       STUDENT_NAME      LOCKER   

        3               Eduardo          l1
        4               Luiz             l2

-Left join of Table 1 and Table 2:

    - Left join merges both tables with all records form table 1, in 
      other words, there might be non-populated fields from table 2

    ID_ESTUDANTE    NOME_ESTUDANTE     LOCKER   

        1               Raony            -
        2               Diogo            -
        3               Eduardo          l1
        4               Luiz             l2

-Right join of table 1 and table 2:

    - Right join merges both tables with all records from table 2, in 
      other words, there might be non-populated fields from table 1

    ID_STUDENT        STUDENT_NAME     LOCKER   

        3               Eduardo          l1
        4               Luiz             l2
        5               -                l3

-Outter join of table 1 and table 2:

    - Returns all records from both tables, in other words, there
      might be non-populated fields either from table 1 or 2.

    ID_STUDENT        STUDENT_NAME     LOCKER   
        1               Raony            -
        2               Diogo            -
        3               Eduardo          l1
        4               Luiz             l2
        5               -                l3

4voto

RussellH Punkte 1229

LEFT JOIN y RIGHT JOIN sind Arten von OUTER JOIN s.

INNER JOIN ist der Standard - Zeilen aus beiden Tabellen müssen der Join-Bedingung entsprechen.

3voto

Pethő Jonatán Punkte 308

Innere Verbindung : Zeigt nur Zeilen an, wenn es Daten aus beiden Tabellen hat.

Äußere Verbindung : (links/rechts) : Zeigt das gesamte Ergebnis der links / rechts Tabelle mit der gepaarten Zeile( s ), wenn es existiert oder nicht.

2voto

HM Nayem Punkte 1955

Zunächst einmal müssen Sie verstehen, was die Verbindung bewirkt. Wir verbinden mehrere Tabellen und erhalten bestimmte Ergebnisse aus den verbundenen Tabellen. Der einfachste Weg, dies zu tun, ist Kreuzverbindung .

Nehmen wir an, TabelleA hat zwei Spalten A und B. Und TabelleB hat drei Spalten C und D. Wenn wir die Kreuzverknüpfung anwenden, werden viele bedeutungslose Zeilen erzeugt. Dann müssen wir mit dem Primärschlüssel abgleichen, um die tatsächlichen Daten zu erhalten.

Links: werden alle Datensätze aus der linken Tabelle und der übereinstimmende Datensatz aus der rechten Tabelle zurückgegeben.

Richtig: wird das Gegenteil von Left join zurückgegeben. Es werden alle Datensätze aus der rechten Tabelle und die übereinstimmenden Datensätze aus der linken Tabelle zurückgegeben.

Inneres: Das ist wie eine Kreuzung. Es werden nur übereinstimmende Datensätze aus beiden Tabellen zurückgegeben.

Äußeres: Und das ist wie eine Gewerkschaft. Es werden alle verfügbaren Datensätze aus beiden Tabellen zurückgegeben.

Manchmal benötigen wir nicht alle Daten, und wir sollten auch nur gemeinsame Daten oder Datensätze benötigen. Wir können sie leicht mit diesen Verknüpfungsmethoden erhalten. Denken Sie daran, dass linke und rechte Verknüpfungen auch äußere Verknüpfungen sind.

Sie können alle Datensätze nur über eine Kreuzverknüpfung erhalten. Bei Millionen von Datensätzen kann dies jedoch teuer werden. Machen Sie es sich also einfach, indem Sie eine linke, rechte, innere oder äußere Verknüpfung verwenden.

danke

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X