Diagramă de comparație
Bazele comparației | Înainte de intrarea în exterior | Dreptul exterior se alătură | Intregul exterior se alătură |
---|---|---|---|
De bază | Toate tabelele tabelului stâng rămân în rezultat. | Toate tichetele mesei drepte rămân în rezultat. | Toate masele din stânga și din dreapta rămân în rezultat. |
Extensie NULL | Tipurile de tabele din stânga care nu au o tuplă potrivită în tabelul din dreapta sunt extinse cu valoarea NULL pentru atributele tabelului drept. | Tipurile de tabele dreapta care nu au o trupă potrivită în tabelul stâng sunt extinse cu valoarea NULL pentru atributele tabelului stâng. | Tuplurile din stânga, precum și tabela dreaptă, care nu are tupluri de potrivire în tabelul din dreapta și din stânga, sunt extinse cu valoare NULL pentru atributele tabelelor din dreapta și din stânga. |
Definiția stânga Outer Alăturați-vă
Să presupunem că avem, " Table_A Left External Join_B ". Așa că Table_A este tabelul nostru stâng, așa cum se pare că a lăsat operația de îmbarcare la stânga și Table_B este tabelul nostru drept .
Inițial, legătura interioară ar fi aplicată pe Table_A și Table_B care va returna toate nodurile potrivite din tabelele A și B.
Apoi, va returna toate tuplurile de la Table_A care nu au o mână potrivită în Table_B. Astfel că tuplurile rezultate ar fi căptușite cu valori NULL pentru atributele tabelului drept.
Prin urmare, rezultatul obținut de la intrarea în exteriorul stânga păstrează toate tuplurile de la masa stângă și numai tuplurile potrivite de la masa dreaptă.
Să ne discutăm despre exemplul din stânga exterioară; avem două tabele de mai jos, tabelul pentru studenți și tabelul departamentului .
Acum, vom aplica Alăturarea de la stânga la exterior, pe tabelul studenților și departamentelor.
SELECT * FROM Departamentul Student LEFT OUTOUN JOIN
ON Student. Student_ID = Departament.Student_ID
În interogarea de mai sus, tabelul Student este tabelul stâng și tabelul Departamentul este tabelul potrivit. Deci, în funcție de intrarea în afara stânga, rezultatul trebuie să aibă toate tuplurile din tabelul Student și numai tuplurile potrivite din tabelul Departamentului.
Definiția dreptului exterior de intrare
Să presupunem că avem, " Table_A Right Outer Join Table_B ". Așa că Table_A este tabelul nostru stâng, așa cum se pare că a lăsat operația Alăturarea din dreapta dreapta și Table_B este tabelul nostru drept .
Ca și în cazul Înălțimii exterioare stângi, inițial, asamblarea interioară ar fi aplicată pe Table_A și Table_B care va returna toate nopții de potrivire din tabelele A și B.
Apoi, va returna toate tuplurile de la Table_B care nu au o nucă de potrivire în Table_A. Astfel că tuplurile rezultate ar fi căptușite cu valori NULL pentru atributele tabelului stâng.
Prin urmare, rezultatul obținut de la intrarea exterioară dreaptă păstrează toate tuplurile de la masa dreaptă și numai tuplurile potrivite din tabela stângă.
Să discutăm despre dreptul de a se uni cu un exemplu; mai sus avem două mese, tabelul de studenți și tabelul departamentului.
Acum, vom aplica dreptul de Outer Alăturați-vă la masă Student și tabel Departamentul.
SELECT * FROM Departamentul Student DREPTUL EXTERN
ON Student. Student_ID = Departament.Student_ID
În interogarea de mai sus, Student Table este tabelul nostru stâng și tabelul Departamentului este tabelul nostru drept. În funcție de operația de înscriere în dreapta, rezultatul trebuie să includă toate tuplurile din tabelul Departamentului și numai tuplele potrivite din tabelul Student.
Definiția Full Outer join
Să presupunem că avem, " Table_A Full Outer Join Table_B ". Deci Table_A este tabelul nostru stâng, așa cum pare să rămână din operația Full Outer Join, iar Table_B este tabelul nostru drept .
Full Outer Join este o combinație atât a celor din stânga cât și a celor din exterior . Inițial, se aplică o conexiune internă pe Table_A și Table_B pentru a prelua nivele de potrivire din ambele tabele. Apoi se extinde acele tupluri din Table_A cu NULL care nu au o nucă potrivită în Table_B. În plus, se extinde acele tupluri de la Table_B cu NULL care nu au o tuplă de potrivire în Table_A.
Prin urmare, Full Outer Join păstrează toate tuplurile din stânga, precum și din tabelul din dreapta, împreună cu tuplele potrivite ale ambelor mese.
Să discutăm despre FULL Outer Join cu un exemplu; avem două mese de mai sus, tabelul de studenți și tabelul departamentului .
Acum, vom aplica Full Outer Alăturați-vă la masă pentru studenți și tabelul Departamentului.
SELECT * FROM Departamentul Student FULL OUTER JOIN
ON Student. Student_ID = Departament.Student_ID
În interogarea de mai sus, Tabelul pentru studenți este tabelul nostru stâng și tabelul Departamentului este tabelul nostru corect. În funcție de Full Outer Join, rezultatul trebuie să includă toate tuplurile din ambele mese.
Diferențele cheie între intrarea stângă, dreapta și complet în afară
- Rezultatul alăturării din stânga exterioară are toate tuplurile tabelului stâng. În mod similar, rezultatul obținut de Îndepărtarea de la dreapta are toate tuplurile mesei drepte. Iar rezultatul Full Outer Join are toate tuplurile de pe tabela stanga si dreapta.
- În intrarea în stânga exterioară, tuplurile tabelului stâng care nu au o tuplă potrivită în tabelul din dreapta sunt extinse cu valori Null pentru atributele tabelului din dreapta. Opus este cazul pentru dreptul de intrare exterioară. Și în Full Outer Join, tuplurile din tabelele din stânga și din dreapta care nu au o mulțime potrivită în tabelele din dreapta și din stânga sunt extinse cu NULL pentru atributele tabelei din dreapta și din stânga respectiv.
Concluzie:
Aveți grijă de pozițiile numelor de tabele dintr-o interogare. Deoarece poziția numelui de tabel în interogare decide dacă tabela ar fi considerată tabelă stânga sau tabelă dreaptă.