inner join vs outer join
Vnútorné pripojenie Vs vonkajšie pripojenie: Pripravte sa na preskúmanie presných rozdielov medzi vnútorným a vonkajším pripojením
Pred preskúmaním rozdielov medzi vnútorným pripojením a vonkajším pripojením sa najskôr pozrime, čo je to SQL JOIN?
Klauzula join sa používa na kombinovanie záznamov alebo na manipuláciu so záznamami z dvoch alebo viacerých tabuliek prostredníctvom podmienky spojenia. Podmienka spojenia označuje, ako sa navzájom porovnávajú stĺpce z každej tabuľky.
Pripojenie je založené na súvisiacom stĺpci medzi týmito tabuľkami. Najbežnejším príkladom je spojenie medzi dvoma tabuľkami prostredníctvom stĺpca primárneho kľúča a stĺpca cudzieho kľúča.
Predpokladajme, že máme tabuľku, ktorá obsahuje plat zamestnancov, a existuje ďalšia tabuľka, ktorá obsahuje podrobnosti o zamestnancoch.
V takom prípade bude k dispozícii spoločný stĺpec, napríklad ID zamestnanca, ktorý sa pripojí k týmto dvom tabuľkám. Tento stĺpec ID zamestnanca by bol primárnym kľúčom tabuliek podrobností o zamestnancovi a cudzím kľúčom v tabuľke miezd zamestnancov.
Je veľmi dôležité mať spoločný kľúč medzi týmito dvoma entitami. Tabuľku si môžete predstaviť ako entitu a kľúč ako spoločné prepojenie medzi týmito dvoma tabuľkami, ktoré sa používa na prevádzku spojenia.
otázky a odpovede na mobilné testovacie pohovory pdf
V zásade existujú dva typy pripojenia v SQL, t.j. Vnútorné a vonkajšie spojenia . Vonkajší spoj sa ďalej delí na tri typy, t.j. Ľavé vonkajšie spojenie, pravé vonkajšie spojenie a úplné vonkajšie spojenie.
V tomto článku uvidíme rozdiel medzi Vnútorné a vonkajšie spojenia podrobne. Krížové spojenia a nerovnaké spojenia ponecháme mimo rozsahu tohto článku.
Čo sa dozviete:
- Čo je to Inner Join?
- Čo je vonkajšie spojenie?
- Rozdiel medzi vnútorným a vonkajším spojom
- Výkon
- MS Access vnútorný a vonkajší spoj
- Ľavé spojenie vs Ľavé vonkajšie pripojenie
- Ľavé vonkajšie spojenie vs Pravé vonkajšie pripojenie
- Rozdiel medzi vnútorným a vonkajším spojením v tabuľkovom formáte
- Vnútorné a vonkajšie spojenia vs Union
- Záver
- Odporúčané čítanie
Čo je to Inner Join?
Vnútorné spojenie vráti iba riadky, ktoré majú zodpovedajúce hodnoty v oboch tabuľkách (tu uvažujeme o spojení medzi týmito dvoma tabuľkami).
Čo je vonkajšie spojenie?
Vonkajšie spojenie obsahuje zodpovedajúce riadky, ako aj niektoré nezhodné riadky medzi týmito dvoma tabuľkami. Vonkajšie spojenie sa v podstate líši od vnútorného spojenia v tom, ako zvláda podmienku nesprávnej zhody.
Existujú 3 typy vonkajšieho spojenia:
- Ľavý vonkajší spoj : Vráti všetky riadky z ľavej tabuľky a zhodné záznamy medzi oboma tabuľkami.
- Správne vonkajšie : Vráti všetky riadky z PRAVEJ tabuľky a zhodné záznamy medzi oboma tabuľkami.
- Úplné vonkajšie pripojenie : Kombinuje výsledok spojenia Ľavý vonkajší spoj a Pravý vonkajší spoj.
Rozdiel medzi vnútorným a vonkajším spojom
[obrázok zdroj ]
Ako je zrejmé z vyššie uvedeného diagramu, existujú dve entity, t. J. Tabuľka 1 a tabuľka 2, a obe tabuľky zdieľajú niektoré spoločné údaje.
Vnútorné spojenie vráti spoločnú oblasť medzi týmito tabuľkami (zelená tieňovaná oblasť na diagrame vyššie), t. J. Všetky záznamy, ktoré sú spoločné medzi tabuľkami 1 a 2.
Ľavé vonkajšie spojenie vráti všetky riadky z tabuľky 1 a iba tie riadky z tabuľky 2, ktoré sú spoločné aj s tabuľkou 1. Správny vonkajší spoj bude mať pravý opak. Poskytne všetky záznamy z tabuľky 2 a iba zodpovedajúce zodpovedajúce záznamy z tabuľky 1.
Úplné vonkajšie spojenie ďalej poskytne všetky záznamy z tabuľky 1 a tabuľky 2.
Začnime príkladom, ktorý to objasní.
Predpokladajme, že máme dve tabuľky: EmpDetails a EmpSalary .
Tabuľka EmpDetails:
Zamestnanecké ID | Meno zamestnanca |
7 | Lily |
1 | Ján |
dva | Samantha |
3 | Žiadne |
4 | Hodvábne |
5 | Ram |
6 | Arpit |
8 | Sita |
9 | Farah |
10 | Jerry |
EmpSalary tabuľka:
Zamestnanecké ID | Meno zamestnanca | Zamestnanecký plat |
---|---|---|
jedenásť | Rose | 90000 |
1 | Ján | 50 000 |
dva | Samantha | 1 20000 |
3 | Žiadne | 75000 |
4 | Hodvábne | 25000 |
5 | Ram | 1 50000 |
6 | Arpit | 80000 |
12 | Sakši | 45000 |
13 | Jack | 2 50000 |
Urobme vnútorné spojenie na týchto dvoch stoloch a sledujme výsledok:
Dopyt:
SELECT EmpDetails. EmployeeID, EmpDetails. EmployeeName, EmpSalary. EmployeeSalary FROM EmpDetails INNER JOIN EmpSalary ON EmpDetails. EmployeeID = EmpSalary. EmployeeID;
Výsledok:
Zamestnanecké ID | Meno zamestnanca | Zamestnanecký plat |
---|---|---|
7 | Lily | NULOVÝ |
1 | Ján | 50 000 |
dva | Samantha | 1 20000 |
3 | Žiadne | 75000 |
4 | Hodvábne | 25000 |
5 | Ram | 1 50000 |
6 | Arpit | 80000 |
Vo vyššie uvedenej množine výsledkov môžete vidieť, že funkcia Inner Join vrátila prvých 6 záznamov, ktoré boli prítomné v EmpDetails aj EmpSalary so zodpovedajúcim kľúčom, tj. EmployeeID. Ak sú teda A a B dve entity, funkcia Vnútorné spojenie vráti množinu výsledkov, ktorá sa bude rovnať „Záznamom v A a B“, na základe zhodného kľúča.
Pozrime sa teraz, čo urobí Ľavé vonkajšie spojenie.
Dopyt:
SELECT EmpDetails. EmployeeID, EmpDetails. EmployeeName, EmpSalary. EmployeeSalary FROM EmpDetails LEFT JOIN EmpSalary ON EmpDetails. EmployeeID = EmpSalary. EmployeeID;
Výsledok:
Zamestnanecké ID | Meno zamestnanca | Zamestnanecký plat |
---|---|---|
1 | Ján | 50 000 |
dva | Samantha | 1 20000 |
3 | Žiadne | 75000 |
4 | Hodvábne | 25000 |
5 | Ram | 1 50000 |
6 | Arpit | 80000 |
8 | Sita | NULOVÝ |
9 | Farah | NULOVÝ |
10 | Jerry | NULOVÝ |
Vo vyššie uvedenej množine výsledkov môžete vidieť, že ľavé vonkajšie spojenie vrátilo všetkých 10 záznamov z tabuľky LEFT, t. J. Tabuľka EmpDetails, a keďže sa zhoduje prvých 6 záznamov, vrátila plat zamestnancov za tieto zodpovedajúce záznamy.
Pretože zvyšok záznamov nemá zodpovedajúci kľúč v PRAVEJ tabuľke, t. J. Tabuľka EmpSalary, vrátil NULL zodpovedajúcu týmto. Pretože Lily, Sita, Farah a Jerry nemajú zodpovedajúce ID zamestnanca v tabuľke EmpSalary, ich plat sa v sade výsledkov zobrazuje ako NULL.
Ak sú teda A a B dve entity, potom ľavé vonkajšie spojenie vráti množinu výsledkov, ktorá sa bude rovnať „Záznamom v A NIE B“, na základe zhodného kľúča.
Teraz sledujme, čo robí Správne vonkajšie spojenie.
Dopyt:
SELECT EmpDetails. EmployeeID, EmpDetails. EmployeeName, EmpSalary. EmployeeSalary FROM EmpDetails RIGHT join EmpSalary ON EmpDetails. EmployeeID = EmpSalary. EmployeeID;
Výsledok:
Zamestnanecké ID | Meno zamestnanca | Zamestnanecký plat |
---|---|---|
NULOVÝ | NULOVÝ | 90000 |
1 | Ján | 50 000 |
dva | Samantha | 1 20000 |
3 | Žiadne | 75000 |
4 | Hodvábne | 25000 |
5 | Ram | 1 50000 |
6 | Arpit | 80000 |
NULOVÝ | NULOVÝ | 2 50000 |
NULOVÝ | NULOVÝ | 2 50000 |
Vo vyššie uvedenej množine výsledkov môžete vidieť, že pravé vonkajšie spojenie urobilo pravý opak ľavého spojenia. Vrátila všetky platy z pravej tabuľky, tj. Tabuľky EmpSalary.
Ale keďže Rose, Sakshi a Jack nemajú zodpovedajúce ID zamestnanca v ľavej tabuľke, t. J. Tabuľka EmpDetails, dostali sme ich ID zamestnanca a názov zamestnanca ako NULL z ľavej tabuľky.
Ak sú A a B dve entity, potom pravé vonkajšie spojenie vráti množinu výsledkov, ktorá sa bude rovnať ‘Záznamom v B NIE A‘, na základe zhodného kľúča.
Pozrime sa tiež, čo bude výsledková sada, ak vykonávame operáciu výberu všetkých stĺpcov v oboch tabuľkách.
Dopyt:
SELECT * FROM EmpDetails RIGHT JOIN EmpSalary ON EmpDetails. EmployeeID = EmpSalary. EmployeeID;
Výsledok:
Zamestnanecké ID | Meno zamestnanca | Zamestnanecké ID | Meno zamestnanca | Zamestnanecký plat |
---|---|---|---|---|
NULOVÝ | NULOVÝ | jedenásť | Rose | 90000 |
1 | Ján | 1 | Ján | 50 000 |
dva | Samantha | dva | Samantha | 1 20000 |
3 | Žiadne | 3 | Žiadne | 75000 |
4 | Hodvábne | 4 | Hodvábne | 25000 |
5 | Ram | 5 | Ram | 1 50000 |
6 | Arpit | 6 | Arpit | 80000 |
NULOVÝ | NULOVÝ | 12 | Sakši | 2 50000 |
NULOVÝ | NULOVÝ | 13 | Jack | 2 50000 |
Poďme teraz k úplnému spojeniu.
Úplné vonkajšie spojenie sa vykoná, keď chceme mať všetky údaje z oboch tabuliek bez ohľadu na to, či existuje alebo nie je zhoda. Preto, ak chcem všetkých zamestnancov, aj keď nenájdem zodpovedajúci kľúč, spustím dotaz, ako je uvedené nižšie.
Dopyt:
SELECT * FROM EmpDetails FULL JOIN EmpSalary ON EmpDetails. EmployeeID = EmpSalary. EmployeeID;
Výsledok:
Zamestnanecké ID | Meno zamestnanca | Zamestnanecké ID | Meno zamestnanca | Zamestnanecký plat |
---|---|---|---|---|
7 | Lily | NULOVÝ | NULOVÝ | NULOVÝ |
1 | Ján | 1 | Ján | 50 000 |
dva | Samantha | dva | Samantha | 1 20000 |
3 | Žiadne | 3 | Žiadne | 75000 |
4 | Hodvábne | 4 | Hodvábne | 25000 |
5 | Ram | 5 | Ram | 1 50000 |
6 | Arpit | 6 | Arpit | 80000 |
8 | Sita | NULOVÝ | NULOVÝ | NULOVÝ |
9 | Farah | NULOVÝ | NULOVÝ | NULOVÝ |
10 | Jerry | NULOVÝ | NULOVÝ | NULOVÝ |
NULOVÝ | NULOVÝ | jedenásť | Rose | 90000 |
NULOVÝ | NULOVÝ | 12 | Sakši | 2 50000 |
NULOVÝ | NULOVÝ | 13 | Jack | 2 50000 |
Vo vyššie uvedenej množine výsledkov môžete vidieť, že keď sa prvých šesť záznamov zhoduje v oboch tabuľkách, dostali sme všetky údaje bez akejkoľvek NULL. Nasledujúce štyri záznamy existujú v ľavej tabuľke, ale nie v pravej tabuľke, a teda zodpovedajúce údaje v pravej tabuľke majú hodnotu NULL.
Posledné tri záznamy existujú v pravej tabuľke a nie v ľavej tabuľke, preto máme NULL v zodpovedajúcich údajoch z ľavej tabuľky. Ak sú teda A a B dve entity, úplné vonkajšie spojenie vráti množinu výsledkov, ktorá sa bude rovnať „Záznamom v A A B“, bez ohľadu na zodpovedajúci kľúč.
Teoreticky ide o kombináciu ľavého spojenia a pravého spojenia.
Výkon
Porovnajme vnútorné spojenie s ľavým vonkajším spojením na serveri SQL. Keď hovoríme o rýchlosti operácie, ľavý vonkajší JOIN samozrejme nie je rýchlejší ako vnútorné spojenie.
Podľa definície musí byť vonkajšie spojenie, či už ľavé alebo pravé, nevyhnutné vykonať všetku prácu vnútorného spojenia spolu s ďalšou prácou, ktorá rozširuje výsledky. Očakáva sa, že vonkajšie spojenie vráti väčší počet záznamov, čo ďalej zvyšuje jeho celkový čas vykonávania len kvôli väčšej množine výsledkov.
Vonkajšie spojenie je teda pomalšie ako vnútorné spojenie.
Okrem toho môžu nastať niektoré špecifické situácie, keď bude ľavé spojenie rýchlejšie ako vnútorné spojenie, ale nemôžeme pokračovať v ich vzájomnej výmene, pretože ľavé vonkajšie spojenie nie je funkčne ekvivalentné vnútornému spojeniu.
Poďme diskutovať o príklade, keď môže byť Ľavé spojenie rýchlejšie ako Vnútorné pripojenie. Ak sú tabuľky zapojené do operácie spojenia príliš malé, povedzme, že majú menej ako 10 záznamov a tabuľky neobsahujú dostatočné indexy na pokrytie dotazu, v takom prípade je spojenie Left Left všeobecne rýchlejšie ako Inner join.
Vytvorme dve tabuľky nižšie a urobme medzi nimi INNER JOIN a LEFT OUTER JOIN ako príklad:
CREATE TABLE #Table1 ( ID int NOT NULL PRIMARY KEY, Name varchar(50) NOT NULL ) INSERT #Table1 (ID, Name) VALUES (1, 'A') INSERT #Table1 (ID, Name) VALUES (2, 'B') INSERT #Table1 (ID, Name) VALUES (3, 'C') INSERT #Table1 (ID, Name) VALUES (4, 'D') INSERT #Table1 (ID, Name) VALUES (5, 'E') CREATE TABLE #Table2 ( ID int NOT NULL PRIMARY KEY, Name varchar(50) NOT NULL ) INSERT #Table2 (ID, Name) VALUES (1, 'A') INSERT #Table2 (ID, Name) VALUES (2, 'B') INSERT #Table2 (ID, Name) VALUES (3, 'C') INSERT #Table2 (ID, Name) VALUES (4, 'D') INSERT #Table2 (ID, Name) VALUES (5, 'E') SELECT * FROM #Table1 t1 INNER JOIN #Table2 t2 ON t2.Name = t1.Name
ID | názov | ID | názov | |
---|---|---|---|---|
Nižšie je uvedená vizualizácia vnútorného spojenia: ![]() | Nižšie je uvedená vizualizácia vonkajšieho spojenia ![]() | |||
1 | 1 | TO | 1 | TO |
dva | dva | B | dva | B |
3 | 3 | C. | 3 | C. |
4 | 4 | D | 4 | D |
5 | 5 | JE | 5 | JE |
SELECT * FROM (SELECT 38 AS bah) AS foo JOIN (SELECT 35 AS bah) AS bar ON (55=55);
ID | názov | ID | názov | |
---|---|---|---|---|
1 | 1 | TO | 1 | TO |
dva | dva | B | dva | B |
3 | 3 | C. | 3 | C. |
4 | 4 | D | 4 | D |
5 | 5 | JE | 5 | JE |
Ako vidíte vyššie, obidva dotazy vrátili rovnakú množinu výsledkov. V takom prípade, ak si zobrazíte plán vykonávania oboch dotazov, zistíte, že vnútorné spojenie stálo viac nákladov ako vonkajšie spojenie. Je to tak kvôli tomu, že pre vnútorné spojenie robí server SQL hash zhodu, zatiaľ čo pre ľavé spojenie robí vnorené slučky.
Zhoda s hashom je zvyčajne rýchlejšia ako vnorené slučky. Ale v tomto prípade, pretože počet riadkov je taký malý a že neexistuje žiadny index, ktorý by sa dal použiť (tak ako to robíme join v stĺpci mien), sa z hashovacej operácie stal najdrahší dotaz na vnútorné spojenie.
Ak však zmeníte zodpovedajúci kľúč v dotaze na spojenie z názvu na ID a ak je v tabuľke veľký počet riadkov, zistíte, že vnútorné spojenie bude rýchlejšie ako ľavé vonkajšie spojenie.
MS Access vnútorný a vonkajší spoj
Keď v dotaze MS Access použijete viac zdrojov údajov, potom na riadenie záznamov, ktoré chcete vidieť, použijete JOINs v závislosti od toho, ako sú zdroje údajov navzájom prepojené.
najlepší optimalizátor systému pre Windows 10
Vo vnútornom spojení sa v jednej sade výsledkov skombinujú iba súvisiace z oboch tabuliek. Toto je predvolené pripojenie v Accesse a tiež najčastejšie používané. Ak použijete spojenie, ale výslovne nešpecifikujete, o aký typ spojenia ide, Access predpokladá, že ide o vnútorné spojenie.
Vo vonkajších spojeniach sú všetky súvisiace údaje z oboch tabuliek skombinované správne plus všetky zostávajúce riadky z jednej tabuľky. V úplných vonkajších spojeniach sa všetky údaje kombinujú všade, kde je to možné.
Ľavé spojenie vs Ľavé vonkajšie pripojenie
Na serveri SQL je kľúčové slovo vonkajší voliteľné, keď použijete ľavé vonkajšie spojenie. Nerobí teda žiadny rozdiel, ak napíšete „LEFT OUTER JOIN“ alebo „LEFT JOIN“, pretože obidve vám poskytnú rovnaký výsledok.
LEFT JOIN B je ekvivalentná syntax ako A LEFT OUTER JOIN B.
Nižšie je uvedený zoznam ekvivalentných syntaxí na serveri SQL:
[obrázok zdroj ]
Ľavé vonkajšie spojenie vs Pravé vonkajšie pripojenie
Tento rozdiel sme už videli v tomto článku. Ak chcete vidieť rozdiel, môžete sa pozrieť na dotazy a na súpravu výsledkov Ľavé vonkajšie spojenie a Pravé vonkajšie spojenie.
Hlavný rozdiel medzi ľavým a pravým spojením spočíva v zahrnutí nezhodných riadkov. Ľavé vonkajšie spojenie obsahuje nepriradené riadky z tabuľky, ktorá je naľavo od klauzuly join, zatiaľ čo pravé vonkajšie spojenie obsahuje nepriradené riadky z tabuľky, ktorá je napravo od klauzuly join.
Ľudia sa pýtajú, čo je lepšie použiť, tj. Vľavo alebo Vpravo? V zásade ide o rovnaký typ operácií, ibaže ich argumenty sú obrátené. Preto, keď sa pýtate, ktorý spoj sa má použiť, vlastne sa pýtate, či napísať a a. Je to len otázka preferencie.
Ľudia vo všeobecnosti uprednostňujú použitie dotazu Left join vo svojom dotaze SQL. Navrhujem, aby ste pri písaní dotazu postupovali konzistentne, aby ste predišli nejasnostiam pri interpretácii dotazu.
Zatiaľ sme videli všetko o vnútornom pripojení a všetkých typoch vonkajších pripojení. Poďme rýchlo zhrnúť rozdiel medzi vnútorným a vonkajším spojením.
Rozdiel medzi vnútorným a vonkajším spojením v tabuľkovom formáte
Vnútorné pripojenie | Vonkajší spoj |
---|---|
Vráti iba riadky, ktoré majú v oboch tabuľkách zhodné hodnoty. | Zahŕňa zhodné riadky a niektoré nezhodné riadky medzi týmito dvoma tabuľkami. |
V prípade, že je v tabuľkách veľký počet riadkov a existuje index, ktorý sa má použiť, je funkcia INNER JOIN spravidla rýchlejšia ako OUTER JOIN. | VONKAJŠÍ SPOJ je vo všeobecnosti pomalší ako VNÚTORNÝ SPOJ, pretože v porovnaní s VNÚTORNÝM SPOJENÍ potrebuje vrátiť väčší počet záznamov. Môžu však existovať niektoré konkrétne scenáre, keď je VONKAJŠÍ SPOJ rýchlejší. |
Ak sa nenájde zhoda, nič nevráti. | Ak sa nenájde zhoda, do vrátenej hodnoty stĺpca sa umiestni NULL. |
Použite INNER JOIN, ak chcete vyhľadať podrobné informácie o konkrétnom stĺpci. | Použite OUTER JOIN, ak chcete zobraziť zoznam všetkých informácií v dvoch tabuľkách. |
INNER JOIN funguje ako filter. V obidvoch tabuľkách musí byť zhoda, aby vnútorné spojenie vrátilo údaje. | Fungujú ako doplnky údajov. |
Pre vnútorné spojenie existuje implicitná notácia spojenia, ktorá v klauzule FROM uvádza tabuľky, ktoré sa majú spojiť spôsobom oddeleným čiarkami. Príklad: SELECT * FROM product, category WHERE product.CategoryID = category.CategoryID; | Pre vonkajšie spojenie neexistuje žiadna implicitná notácia spojenia. |
Vnútorné a vonkajšie spojenia vs Union
Niekedy si pletieme Join and Union a toto je tiež jedna z najčastejšie kladených otázok v SQL rozhovory . Už sme videli rozdiel medzi vnútorným a vonkajším spojením. Teraz sa pozrime, ako sa PRIPOJENIE líši od ÚNIE.
UNION umiestni rad otázok za sebou, zatiaľ čo join vytvorí kartézsky produkt a podmnoží ho. UNION a JOIN sú teda úplne odlišné operácie.
Spustíme nižšie uvedené dva dotazy v MySQL a pozrieme si ich výsledok.
Dotaz UNION:
SELECT 28 AS bah UNION SELECT 35 AS bah;
Výsledok:
Bah | |
---|---|
1 | 28 |
dva | 35 |
PRIPOJTE SA k dotazu:
SELECT * FROM (SELECT 38 AS bah) AS foo JOIN (SELECT 35 AS bah) AS bar ON (55=55);
Výsledok:
foo | Bar | |
---|---|---|
1 | 38 | 35 |
Operácia UNION dáva výsledok dvoch alebo viacerých dotazov do jednej výsledkovej sady. Táto výsledková sada obsahuje všetky záznamy, ktoré sa vracajú cez všetky dotazy zapojené do ÚNIE. V podstate teda ÚNIA kombinuje tieto dve výsledkové sady.
Operácia spojenia načítava údaje z dvoch alebo viacerých tabuliek na základe logických vzťahov medzi týmito tabuľkami, t. J. Na základe podmienky spojenia. V spojovacom dotaze sa údaje z jednej tabuľky používajú na výber záznamov z inej tabuľky. Umožňuje vám prepojiť podobné údaje, ktoré sú k dispozícii v rôznych tabuľkách.
Aby sme to pochopili veľmi jednoducho, môžete povedať, že program UNION kombinuje riadky z dvoch tabuliek, zatiaľ čo spojenie kombinuje stĺpce z dvoch alebo viacerých tabuliek. Oba sa teda používajú na kombináciu údajov z n tabuliek, rozdiel však spočíva v tom, ako sa údaje kombinujú.
Ďalej sú uvedené obrázkové zobrazenia organizácií UNION a JOIN.
Vyššie uvedené je obrázkové znázornenie operácie spojenia, ktoré ukazuje, že každý záznam v množine výsledkov obsahuje stĺpce z oboch tabuliek, t. J. Tabuľky A a tabuľky B. Tento výsledok sa vráti na základe podmienky spojenia použitej v dotaze.
Spojenie je všeobecne výsledkom denormalizácie (oproti normalizácii) a používa cudzí kľúč jednej tabuľky na vyhľadanie hodnôt stĺpca použitím primárneho kľúča v inej tabuľke.
Vyššie uvedené je obrazové znázornenie operácie UNION, ktoré ukazuje, že každý záznam v množine výsledkov je riadkom z ktorejkoľvek z týchto dvoch tabuliek. Výsledok ÚNIE teda skombinoval riadky z tabuľky A a tabuľky B.
Ďalšie čítanie = >> MySQL UNION vysvetlené na príkladoch
Záver
V tomto článku sme videli hlavné rozdiely medzi Vnútorné a vonkajšie spojenia v SQL . Videli sme tiež klasifikáciu vonkajšieho spojenia, tj. Ľavého spojenia, pravého spojenia a úplného spojenia. Videli sme, ako každý z týchto typov spojenia funguje a ako sa navzájom líšia.
Urobili sme tiež určité porovnanie výkonu medzi týmito typmi spojení. Diskutovali sme tiež o tom, ako sa líši členstvo od únie.
Prečítajte si tiež = >> Typy pripojenia MySQL
Dúfam, že vám tento článok pomôže objasniť vaše pochybnosti týkajúce sa rozdielov medzi rôznymi typmi spojení. Sme si istí, že to skutočne prinúti rozhodnúť sa, z ktorého typu spojenia si môžete vybrať, na základe požadovanej množiny výsledkov.
Odporúčané čítanie
- Presný rozdiel medzi overením a overením pomocou príkladov
- Modem Vs Router: Poznajte presný rozdiel
- Rozdiel medzi serverom SQL Vs MySQL Vs SQL Server (s príkladmi)
- Výukový program pre Python DateTime s príkladmi
- LAN vs WAN vs. MAN: Presný rozdiel medzi typmi sietí
- Vystrihnite príkaz v systéme Unix s príkladmi
- Syntax príkazov Unix Cat, možnosti s príkladmi
- Používanie kurzora v MongoDB s príkladmi