Diferențele dintre dreapta și dreapta Alăturați-vă Diferența dintre

Anonim

Stânga vs dreapta Alăturați-vă

Când se ocupă de SQL, join-urile sunt un nume comun care va apărea din când în când. Clauza de asociere ajută la combinarea înregistrărilor din diferite tabele dintr-un set de date. Alăturarea în vigoare creează un tabel care poate fi utilizat atât ca atare, cât și în altul. Prin urmare, este recomandabil să înțelegem aceste îmbinări și diferențele dintre ele, astfel încât să cunoaștem legătura specifică și dacă ar trebui să luăm dreptate sau stânga în cazuri speciale.

Pentru a înțelege mai bine punctele de legătură și diferențele dintre ele, este important să înțelegeți tipurile de conexiuni disponibile. Există în general trei tipuri de conexiuni. Aceste îmbinări includ îmbinarea interioară, îmbinarea încrucișată și îmbinarea exterioară. Intrarea internă compară în general mesele și va da sau va întoarce un rezultat numai în cazul în care se găsește un meci. Funcția principală a unei îmbinări interioare este de a reduce dimensiunea seturilor de rezultate.

Pe de altă parte, încrucișările încrucișate compară două mese și oferă o întoarcere a fiecărei combinații posibile din rândurile celor două mese. Sunt de așteptat numeroase rezultate din această adunare și majoritatea acestora nu ar putea avea nici măcar importanță. Prin urmare, utilizarea acestei îmbinări ar trebui să se facă cu precauție.

Îmbinarea exterioară face o comparare a tabelelor și returnează date atunci când un meci este disponibil. Așa cum se vede în interiorul intrării interioare, legătura exterioară duplică rânduri într-un tabel dat în cazul în care sunt înregistrate înregistrări corespunzătoare. Rezultatele îmbinărilor exterioare sunt în mod normal mai mari și, prin urmare, seturile de date sunt mari, deoarece setul în sine nu este scos din set.

O intrare stânga se referă la păstrarea tuturor înregistrărilor din prima tabelă, indiferent de rezultat, și introducerea valorilor NULL când valorile celei de-a doua tabele nu se potrivesc. Pe de altă parte, o conexiune dreaptă se referă la păstrarea tuturor înregistrărilor provenite din tabelul 2 indiferent de rezultatul obținut și utilizarea valorilor NULL atunci când rezultatele nu se potrivesc cu cele din tabelul 1.

Prin urmare, o îmbinare exterioară stângă păstrează toate rândurile care se află în tabelul "stânga", indiferent dacă există un rând care se potrivește cu acesta pe tabelul "drept". Tabela stângă se referă, prin urmare, la tabelul care este primul în declarația comună. Ar trebui să apară în partea stângă a cuvântului cheie "join" care apare pe masă. Atunci când se face o îmbinare exterioară stângă, toate rândurile din stânga trebuie returnate. Coloanele care nu se potrivesc în tabel vor fi completate cu un NULL ori de câte ori nu există nici o potrivire.

Este important să rețineți că atunci când se ocupă de aceste două îmbinări, toate rândurile din stânga mesei sunt afișate în tabel într-o legătură exterioară stângă. Rezultatele se afișează indiferent dacă există coloane de potrivire în tabelul din dreapta.Într-o îmbinare exterioară dreaptă, sunt afișate toate rândurile din dreapta și acest lucru este indiferent dacă există coloane potrivite în partea stângă a tabelului.

Alegerea opțiunii pentru a merge la partea exterioară a stângii sau la rostul exterior exterior nu contează dacă sunt afișate aceleași rezultate. Funcționalitatea pe care o îmbinare dreaptă exterioară prezintă este aceeași funcționalitate pe care o prezintă partea exterioară a stângii. Prin comutarea pur și simplu a ordinii în care tabelele apar în instrucțiunea SQL, vă puteți aștepta la rezultate similare, indiferent de conexiunea utilizată.

Rezumat

Legăturile vin în trei grupe principale - unire interioară, intrare încrucișată și unitate exterioară

O îmbinare exterioară stângă afișează toate rândurile din stânga mesei

O îmbinare dreaptă afișează toate rândurile din dreapta tabelului

Alternarea secvenței SQL poate elimina utilizarea atît a rosturilor exterioare drept, cît și a celei din stânga și poate utiliza numai una.