DOŁĄCZ do WEJŚCIA WEWNĘTRZNEGO i DOŁĄCZ DO PEŁNEGO ZEWNĘTRZNEGO

27

Wiem, że istnieje różnica między INNER JOINi FULL OUTER JOINmogę go zobaczyć, ale to, co jest różnica między dwóch następujących: JOIN ... ON...a INNER JOIN...ON...i nadal jeszcze JOIN...ON...vsFULL OUTER JOIN...ON...

Powodem jest to, że myślę, że może po prostu używam JOINto zepsucie zapytania, nad którym pracuję, które jest opublikowane w SO, link do pytania TUTAJ.

Więc w zasadzie jaka jest składniowa różnica między samymi faktycznymi zestawami operacji?

Dziękuję Ci,

MCP_infiltrator
źródło
1
„Cross posting” to samo pytanie na różnych forach. Publikowanie linku jest w porządku i pożądane.
choroba
Ok, opublikuję link do pytania, mój kod zwraca wiele wielu duplikatów i doprowadza mnie to do szału ... Nie miałem nawet mojej porannej kawy jeszcze lol
MCP_infiltrator
4
@MCP_infiltrator rzucić okiem na prawdopodobnie najlepsze wyjaśnienie: codinghorror.com/blog/2007/10/…
mkk
Jeśli prawdziwym problemem jest to, że kod zwraca zbyt wiele duplikatów, możesz zadać kolejne pytanie, gdzie jest to główny punkt. I możesz opublikować swój kod. Kiedy w przeszłości pomagałem ludziom ze zduplikowanymi problemami, zwykle dzieje się tak z powodu złych warunków łączenia lub czasami z powodu słabego odwzorowania między modelem danych SQL a relacyjnym modelem danych.
Walter Mitty
Cześć @WalterMitty, pytanie jest zamieszczone w SO, myślę, że moje dołączenia są problemem, ale z innej uwagi byłem również po prostu ciekawy, mam tylko 6 miesięcy na pisanie SQL i samokształcenie, link jest w pytaniu.
MCP_infiltrator

Odpowiedzi:

33

JOINi INNER JOINsą takie same, wewnętrzne słowo kluczowe jest opcjonalne, ponieważ wszystkie łączenia są uważane za połączenia wewnętrzne, chyba że określono inaczej. Różnica między JOINi FULL OUTER JOINjest taka sama jak różnica między INNER JOINi FULL OUTER JOIN.

Zwróci INNER JOINdopasowane wiersze tylko wtedy, gdy wiersz w tabeli A pasuje do wielu wierszy w tabeli B, wiersz A zostanie powtórzony z każdym wierszem tabeli B i odwrotnie.

A FULL OUTER JOINzwróci wszystko, co robi sprzężenie wewnętrzne i zwróci wszystkie niedopasowane wiersze z każdej tabeli.

Ryathal
źródło
5
Dziękuję, nie wiedziałem o tym JOINi INNER JOINbyły równoważnymi stwierdzeniami.
MCP_infiltrator
7
Najlepszą praktyką jest wyraźne napisanie INNER JOIN, aby uniknąć nieporozumień.
Neil