1468 Stimmen

Unterschied zwischen JOIN und INNER JOIN

Beide Verbindungen führen zu den gleichen Ergebnissen:

SELECT * FROM table JOIN otherTable ON table.ID = otherTable.FK

gegen

SELECT * FROM table INNER JOIN otherTable ON table.ID = otherTable.FK

Gibt es einen Unterschied zwischen den Aussagen in Bezug auf die Leistung oder anders?

Unterscheidet sie sich zwischen verschiedenen SQL Implementierungen?

43voto

Martin Smith Punkte 417623

Wie bereits in den anderen Antworten erwähnt, gibt es in Ihrem Beispiel keinen Unterschied.

Der relevante Teil der Grammatik lautet hier dokumentiert

<join_type> ::= 
    [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
    JOIN

Das zeigt, dass alles optional ist. Die Seite stellt weiter klar, dass

INNER Gibt an, dass alle übereinstimmenden Paare von Zeilen zurückgegeben werden. Verwirft nicht übereinstimmende Zeilen aus beiden Tabellen. Wenn kein Verknüpfungstyp angegeben wird, ist dies der Standard .

Die Grammatik weist auch darauf hin, dass es einen Zeitpunkt gibt, an dem die INNER ist jedoch erforderlich. Wenn Sie einen Join-Hinweis angeben.

Siehe das folgende Beispiel

CREATE TABLE T1(X INT);
CREATE TABLE T2(Y INT);

SELECT *
FROM   T1
       LOOP JOIN T2
         ON X = Y;

SELECT *
FROM   T1
       INNER LOOP JOIN T2
         ON X = Y;

enter image description here

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