Oba te sprzężenia dadzą mi takie same wyniki:
SELECT * FROM table JOIN otherTable ON table.ID = otherTable.FK
vs
SELECT * FROM table INNER JOIN otherTable ON table.ID = otherTable.FK
Czy istnieje jakaś różnica między stwierdzeniami w zakresie wydajności lub w inny sposób?
Czy różni się między różnymi implementacjami SQL ?
sql
sql-server
join
inner-join
driis
źródło
źródło
Odpowiedzi:
Są funkcjonalnie równoważne, ale
INNER JOIN
mogą być nieco bardziej czytelne, szczególnie jeśli zapytanie zawiera inne typy łączenia (tj.LEFT
LubRIGHT
lubCROSS
).źródło
Nie, nie ma różnicy, czysty cukier syntaktyczny .
źródło
INNER
podlega tej definicji.INNER
, nie ułatwia odczytania zapytania. Z tego co wiem,JOIN
może to oznaczaćLEFT JOIN
, że odpowiedzi nie wyjaśnią tego tutaj.DOŁĄCZ DO WEWNĘTRZNEGO = DOŁĄCZ
LUB
źródło
Tak, Microsoft Access nie zezwala tylko
join
. To wymagainner join
.źródło
Podobnie z
OUTER JOINs
, słowo"OUTER"
jest opcjonalne. To słowo kluczoweLEFT
lubRIGHT
sprawia, żeJOIN
an"OUTER" JOIN
.Jednak z jakiegoś powodu zawsze używam
"OUTER"
jakoLEFT OUTER JOIN
i nigdyLEFT JOIN
, ale nigdy nie używamINNER JOIN
, ale raczej używam"JOIN"
:źródło
Jak już wskazują inne odpowiedzi, w twoim przykładzie nie ma różnicy.
Odpowiednia gramatyka jest tutaj udokumentowana
Pokazanie, że wszystkie są opcjonalne. Strona dodatkowo to wyjaśnia
Gramatyka wskazuje również, że jest jeden raz, gdzie
INNER
jest wymagane. Podczas określania wskazówki dołączenia.Zobacz przykład poniżej
źródło