Adunarea interioară vs. intrarea exterioară


În SQL, a a adera este folosit pentru a compara și a combina - literal alinia - și a returna rânduri specifice de date din două sau mai multe tabele într-o bază de date. Un Intrarea internă găsește și returnează datele potrivite din tabele, în timp ce un exterior se alătură găsește și returnează date potrivite și unele date diferite de la tabele.

Inner Join

Un cuplu interior se concentrează asupra caracterului comun între două mese. Atunci când se utilizează o îmbinare interioară, trebuie să existe cel puțin unele date potrivite între două (sau mai multe) tabele care sunt comparate. Un cuplu interior caută tabele pentru potrivirea sau suprapunerea datelor. La găsirea acesteia, îmbinarea interioară combină și returnează informațiile într-o singură masă nouă.

Exemplu de intrare internă

Să luăm în considerare un scenariu comun de două tabele: prețurile produselor și cantitățile. Informațiile obișnuite din cele două tabele sunt numele produsului, deci este coloana logică pentru a intra în tabele pe. Există câteva produse care sunt comune în cele două tabele; altele sunt unice la un tabel și nu au un meci în celălalt tabel.

O intrare internă Produse returnează informații despre acele produse care sunt comune în ambele tabele.

Externe Alăturați-vă

O unitate externă returnează un set de înregistrări (sau rânduri) care includ ceea ce s-ar întoarce o intrare internă, dar include și alte rânduri pentru care nu se găsește o potrivire corespunzătoare în cealaltă tabelă.

Există trei tipuri de îmbinări exterioare:

  • Înainte de intrarea în exterior (sau de alăturarea la stânga)
  • Dreptul de intrare exterior (sau dreptul de intrare)
  • Intrarea completa la exterior (sau intrarea completa)

Fiecare dintre aceste legături externe se referă la o parte a datelor care sunt comparate, combinate și returnate. Uneori vor fi produse null-uri în acest proces deoarece unele date sunt partajate în timp ce alte date nu sunt.

Înainte de intrarea în exterior

O unitate exterioară din stânga va returna toate datele din Tabelul 1 și toate datele partajate (astfel, partea interioară a exemplului diagramei Venn), dar numai datele corespunzătoare din Tabelul 2, care reprezintă intrarea corectă.

Ajungeți la exemplu Exit

În baza noastră de date, există două produse - portocale și roșii - pe "stânga" (Preturi tabel) care nu au o intrare corespunzătoare în "dreapta" (tabelul Cantități). Într-o îmbinare stângă, aceste rânduri sunt incluse în setul de rezultate cu un NULL în coloana Cantitate. Celelalte rânduri din rezultat sunt identice cu cele ale îmbinării interioare.

Dreptul exterior se alătură

O intrare exterioară dreaptă returnează datele de la tabelul 2 și toate datele partajate, dar numai datele corespunzătoare din tabelul 1, care reprezintă partea din stânga.

Exemplu de conectare corectă

Similar exemplului din partea stângă, ieșirea unui exterior exterior drept include toate rândurile de îmbinare interioară și două rânduri - broccoli și squash - de la "dreapta" (cantităţi tabel) care nu au intrări corespunzătoare în stânga.

Intregul exterior se alatura

O îmbinare completă exterioară sau o îmbinare completă, care este nu susținută de sistemul popular de gestionare a bazelor de date MySQL, combină și întoarce toate date din două sau mai multe tabele, indiferent dacă există informații partajate. Gândiți-vă la o participare completă, deoarece duplicarea tuturor informațiilor specificate, dar într-un singur tabel, în loc de mai multe tabele. În cazul în care lipsesc date de potrivire, se vor produce nuluri.

Acestea sunt doar elementele de bază, dar multe lucruri se pot face cu ajutorul conexiunilor. Există chiar și unități care pot exclude alte conexiuni!

Explicarea video în interiorul și exteriorul se unește

Acest videoclip explică diferența dintre diferitele tipuri de conexiuni. Este inutil sa inceapa in punctul in care incepe discutia despre asociere.

Referințe

  • Diferența dintre îmbinarea interioară și cea exterioară - Depășirea stivei
  • SQL Inner Join - Quackit
  • SQL Outer Join - Quackit
  • Utilizarea conexiunilor interne - Microsoft SQL Server
  • Utilizarea conexiunilor externe - Microsoft SQL Server
  • Reprezentarea vizuală a conexiunilor SQL - CodeProject
  • Wikipedia: Alăturați-vă (SQL)