Siseühendus vs välimine liitumine


SQL-is, a liitu kasutatakse andmebaasi kahe või enama tabeli konkreetsete andmeridade võrdlemiseks ja kombineerimiseks - sõna otseses mõttes liitmiseks - ja konkreetsete andmeridade tagastamiseks. An sisemine liitumine otsib ja tagastab tabelitest sobivad andmed, samas kui an välimine liitumine otsib ja tagastab vastavad andmed ja mõned erinevad andmed tabelitest.

teata sellest kuulutusest

Sisemine liitumine

Sisemine liitumine keskendub kahe laua ühisele joontele. Sisemise liitmise kasutamisel peab kahe (või enama) võrreldava tabeli vahel olema vähemalt mingid vastavad andmed. Sisemine liitumine otsib tabeleid andmete sobitamiseks või kattumiseks. Pärast selle leidmist ühendab sisemine liitumine teabe uuesti ühte uude tabelisse.

Sisemise liitumise näide

Vaatleme kahe tabeli ühist stsenaariumi: toodete hinnad ja kogused. Kahes tabelis levinud teave on tootenimi, see on loogiline veerg tabelitega liitumiseks peal. Mõnes kahes tabelis on ühiseid tooteid; teised on ühe laua jaoks ainulaadsed ja teises tabelis pole vastet.

Sisemine liitumine edasi Tooted tagastab teabe ainult nende toodete kohta, mis on mõlemas tabelis tavalised.

Väline liitumine

Väline liit tagastab kirjete (või ridade) komplekti, mis sisaldab seda, mida sisemine liitmine tagastaks, kuid sisaldab ka muid ridu, mille jaoks vastavat vastet teisest tabelist ei leitud.

Väliseid liitumisi on kolme tüüpi:

  • Vasakpoolne väline liitumine (või vasakpoolne liitumine)
  • Parempoolne välimine liitumine (või parem liitumine)
  • Täielik väline liitumine (või täielik liitumine)

Kõik need välimised liitumised osutavad andmete osale, mida võrreldakse, ühendatakse ja tagastatakse. Mõnikord tekitatakse selles protsessis nulle, kuna osa andmeid jagatakse, teisi aga mitte.

Vasakpoolne liitumine

Vasakpoolne välimine liitumine tagastab kõik andmed tabelis 1 ja kõik jagatud andmed (seega Venni diagrammi näite sisemine osa), kuid ainult vastavad andmed tabelist 2, mis on parem liitmine.

Vasakpoolne liitumisnäide

Meie näidisandmebaasis on vasakpoolses osas kaks toodet - apelsinid ja tomatid (Hinnad tabel), millel pole vastavat kannet paremal (koguste tabel). Vasakpoolse liitmise korral lisatakse need read tulemuskomplekti veerus Kogus NULL-iga. Tulemuse ülejäänud read on samad, mis sisemine liitmine.

Parempoolne väline liitumine

Parempoolne välimine liitumine tagastab tabeli 2 andmed ja kõik jagatud andmed, kuid ainult vastavad andmed tabelist 1, mis on vasakpoolne liitumine.

Parempoolne liitumisnäide

Sarnaselt vasakpoolse liitumisnäitega hõlmab parempoolse välimise liitmise väljund kõiki sisemise liitmise ridu ja kahte rida - brokkoli ja squash - paremalt (Kogused tabel), millel vasakul pole vastavaid kirjeid.

Täielik väline liitumine

Täielik väline liitumine või täielik liitumine, mis on mitte mida toetab populaarne MySQL andmebaasihaldussüsteem, ühendab ja tagastab kõik andmed kahest või enamast tabelist, sõltumata sellest, kas teavet on jagatud. Mõelge täielikule liitumisele kui kogu määratletud teabe kopeerimisele, vaid ühe tabeli, mitte mitme tabeli kopeerimisele. Kui puuduvad vastavad andmed, toodetakse nullid.

Need on vaid põhitõed, kuid liitumistega saab teha paljusid asju. On isegi liitumisi, mis võivad muud liitumised välistada!

Video, mis selgitab sisemist või välimist liigendit

See video selgitab erinevust erinevat tüüpi liitumiste vahel. Selle eesmärk on alustada sellest hetkest, kui algab arutelu liitumiste üle.

Viited

  • Erinevus sisemise ja välimise liitumise vahel - Virna ülevool
  • SQL sisemine liitumine - Quackit
  • SQL välimine liitumine - Quackit
  • Siseühenduste kasutamine - Microsoft SQL Server
  • Väliste ühenduste kasutamine - Microsoft SQL Server
  • SQL-i liitumiste visuaalne esitus - CodeProject
  • Vikipeedia: Liitu (SQL)