Verschil tussen JOIN en INNER JOIN

Beide joins geven me dezelfde resultaten:

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

vs

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

Is er enig verschil tussen de verklaringen in prestatie of anderszins?

Verschilt het tussen verschillende SQL-implementaties?


Antwoord 1, autoriteit 100%

Ze zijn functioneel equivalent, maar INNER JOINkan wat duidelijker te lezen zijn, vooral als de query andere join-types heeft (bijv. LEFTof RIGHTof CROSS) erin opgenomen.


Antwoord 2, autoriteit 22%

Nee, er is geen verschil, pure syntactische suiker.


Antwoord 3, autoriteit 13%

INNER JOIN = JOIN

INNER JOIN is de standaardinstelling als u niethet type opgeeft wanneer u het woord JOIN gebruikt.

U kunt ook LEFT OUTER JOIN of RIGHT OUTER JOIN gebruiken, in welk geval het woord OUTER optioneel is,
of je kunt CROSS JOIN specificeren.

OF

Voor een inner join is de syntaxis:

SELECTEER …
VAN TabelA
[INNER] WORD LID VAN TableB

(met andere woorden, het “INNER”-zoekwoord is optioneel– de resultaten zijn hetzelfde
met of zonder)


Antwoord 4, autoriteit 5%

Verschilt het tussen verschillende SQL-implementaties?

Ja, Microsoft Access staat niet alleen join. Het vereist inner join.


5, Autoriteit 3%

Zoals de andere antwoorden al aangeven, is er geen verschil in uw voorbeeld.

Het relevante bit van Grammar is hier gedocumenteerd

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

Laat zien dat alles optioneel is. De pagina verduidelijkt verder dat

INNERSpecificeert alle bijpassende paren rijen worden geretourneerd. Teruggooien
Ongeëvenaarde rijen van beide tabellen. Wanneer er geen sluitingstype is opgegeven, dit
is de standaard
.

De grammatica geeft ook aan dat er een keer is dat de INNERisvereist. Bij het specificeren van een join-hint.

Zie onderstaand voorbeeld

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;

Other episodes