Vnútorné pripojenie vs. vonkajšie pripojenie


V SQL, a pripojiť sa používa na porovnanie a kombinovanie - doslova spojenie - a vrátenie konkrétnych riadkov údajov z dvoch alebo viacerých tabuliek v databáze. vnútorné spojenie nájde a vráti zodpovedajúce údaje z tabuliek, zatiaľ čo vonkajšie spojenie nájde a vráti zodpovedajúce údaje a niektoré odlišné údaje z tabuliek.

nahlásiť túto reklamu

Vnútorné pripojenie

Vnútorné spojenie sa zameriava na zhodnosť medzi dvoma tabuľkami. Pri použití vnútorného spojenia musí existovať aspoň niekoľko porovnávacích údajov medzi dvoma (alebo viacerými) tabuľkami, ktoré sa porovnávajú. Vnútorné spojenie vyhľadáva tabuľky, či sa zhodujú alebo prekrývajú údaje. Po jeho nájdení kombinuje vnútorná spojka a vracia informácie do jednej novej tabuľky.

Príklad vnútorného spojenia

Uvažujme o spoločnom scenári dvoch tabuliek: ceny produktov a množstvá. Spoločnou informáciou v týchto dvoch tabuľkách je názov produktu, takže logický stĺpec na pripojenie k tabuľkám na. V týchto dvoch tabuľkách sú bežné niektoré výrobky; iné sú jedinečné pre jednu z tabuliek a v druhej tabuľke sa nezhodujú.

Vnútorné spojenie Produkty vracia informácie iba o produktoch, ktoré sú bežné v oboch tabuľkách.

Vonkajšie pripojenie

Vonkajšie spojenie vráti množinu záznamov (alebo riadkov), ktoré obsahujú to, čo by sa vrátilo vnútorné spojenie, ale zahŕňa aj ďalšie riadky, pre ktoré sa v inej tabuľke nenašla žiadna zodpovedajúca zhoda..

Existujú tri typy vonkajších spojení:

  • Ľavý vonkajší spoj (alebo ľavý spoj)
  • Right Outer Join (alebo Right Join)
  • Úplné pripojenie na vonkajšiu stranu (alebo úplné pripojenie)

Každý z týchto vonkajších spojení sa týka časti údajov, ktorá sa porovnáva, kombinuje a vracia. V tomto procese sa niekedy vytvoria nuly, pretože niektoré údaje sa zdieľajú, zatiaľ čo iné nie.

Ľavé vonkajšie pripojenie

Ľavé vonkajšie spojenie vráti všetky údaje v tabuľke 1 a všetky zdieľané údaje (teda vnútornú časť príkladu Venn diagramu), ale iba zodpovedajúce údaje z tabuľky 2, čo je správne spojenie.

Príklad ľavého pripojenia

V našej ukážkovej databáze sú na ľavej strane dva produkty - pomaranče a paradajky (ceny tabuľka), ktoré neobsahujú zodpovedajúci záznam v „práve“ (tabuľka množstiev). V ľavom spojení sú tieto riadky zahrnuté do sady výsledkov s NULL v stĺpci Množstvo. Ostatné riadky vo výsledku sú rovnaké ako vnútorné spojenie.

Right Outer Join

Pravé vonkajšie spojenie vráti údaje z tabuľky 2 a všetky zdieľané údaje, ale iba zodpovedajúce údaje z tabuľky 1, ktorá je ľavým spojením.

Príklad pripojenia vpravo

Podobne ako v prípade ľavého spoja, výstup pravého vonkajšieho spoja zahŕňa všetky riadky vnútorného spoja a dva riadky - brokolicu a tekvicu - od „pravého“ (množstvo tabuľka), ktoré neobsahujú zodpovedajúce záznamy vľavo.

Plné vonkajšie pripojenie

Úplné vonkajšie spojenie alebo úplné spojenie, ktoré je nie podporuje populárny systém správy databáz MySQL, kombinuje a vracia všetko údaje z dvoch alebo viacerých tabuliek, bez ohľadu na to, či existujú zdieľané informácie. Úplné spojenie považujte za jednoduché duplikovanie všetkých zadaných informácií, ale v jednej tabuľke namiesto viacerých tabuliek. Ak chýbajú zodpovedajúce údaje, vzniknú nulové hodnoty.

Toto sú len základy, ale mnoho vecí sa dá urobiť pomocou spojenia. Existujú dokonca aj spojenia, ktoré môžu vylúčiť ďalšie spojenia!

Video vysvetľujúce vnútorné vs vonkajšie pripojenie

Toto video vysvetľuje rozdiel medzi rôznymi typmi spojení. Začína sa v mieste, kde začína diskusia o pripojení.

Referencie

  • Rozdiel medzi vnútorným a vonkajším spojom - Pretečenie zásobníka
  • SQL Vnútorné pripojenie - Quackit
  • SQL Vonkajšie pripojenie - Quackit
  • Používanie vnútorných pripojení - Microsoft SQL Server
  • Používanie aplikácie Outer Joins - Microsoft SQL Server
  • Vizuálna reprezentácia pripojení SQL - CodeProject
  • Wikipedia: Pripojiť sa (SQL)