Vidinis prisijungimas ir išorinis prisijungimas


SQL, a prisijungti naudojamas palyginti ir sujungti - pažodžiui sujungti - ir grąžinti konkrečias duomenų eilutes iš dviejų ar daugiau lentelių duomenų bazėje. An vidinis prisijungimas randa ir grąžina atitinkamus duomenis iš lentelių, o išorinis sujungimas randa ir grąžina atitinkamus duomenis ir kai kurie skirtingi lentelių duomenys.

pranešti apie šį skelbimą

Vidinis prisijungimas

Vidiniame sujungime daugiausia dėmesio skiriama dviejų lentelių bendrumui. Naudojant vidinį sujungimą, tarp dviejų (ar daugiau) palyginamų lentelių turi būti bent keletas atitikimo duomenų. Vidinis sujungimas ieško lentelių, kad atitiktų ar sutaptų duomenis. Ją radęs, vidinis sujungimas sujungia ir grąžina informaciją į vieną naują lentelę.

Vidinio prisijungimo pavyzdys

Panagrinėkime bendrą dviejų lentelių scenarijų: produktų kainos ir kiekiai. Bendra informacija dviejose lentelėse yra produkto pavadinimas, taigi tai yra loginis stulpelis, jungiantis lenteles apie. Yra keletas produktų, kurie yra įprasti dviejose lentelėse; kiti yra unikalūs vienoje iš lentelių ir neturi atitikties kitoje lentelėje.

Vidinis prisijungimas Produktai grąžina informaciją apie tik tuos produktus, kurie yra bendri abiejose lentelėse.

Išorinis prisijungimas

Išorinis sujungimas grąžina įrašų (arba eilučių) rinkinį, kuriame yra tai, ką grįš vidinis sujungimas, bet taip pat yra ir kitų eilučių, kurioms nerasta atitinkamos atitikties kitoje lentelėje.

Yra trys išorinių sujungimų tipai:

  • Kairysis išorinis prisijungimas (arba kairysis prisijungimas)
  • Dešinysis išorinis prisijungimas (arba Dešinysis prisijungimas)
  • Visiškas išorinis prisijungimas (arba visiškas prisijungimas)

Kiekvienas iš šių išorinių sujungimų reiškia duomenų dalį, kuri yra lyginama, sujungiama ir grąžinama. Kartais šiame procese bus pateikiami niekiniai duomenys, nes dalis duomenų dalijamasi, o kiti ne.

Kairysis išorinis prisijungimas

Kairysis išorinis sujungimas grąžins visus 1 lentelės duomenis ir visus bendrai naudojamus duomenis (taigi, „Venn“ diagramos pavyzdžio vidinę dalį), bet tik atitinkamus duomenis iš 2 lentelės, kuri yra dešinė jungtis.

Kairysis prisijungimo pavyzdys

Mūsų duomenų bazės pavyzdyje yra du produktai - apelsinai ir pomidorai - „kairėje“ (Kainos lentelė), kurios „Dešinėje“ (Kiekių lentelė) nėra atitinkamo įrašo. Kairiajame sujungime šios eilutės įtraukiamos į rezultatų rinkinį su NULL stulpelyje Kiekis. Kitos rezultato eilutės sutampa su vidine jungtimi.

Dešinysis išorinis prisijungimas

Dešinysis išorinis sujungimas grąžina 2 lentelės duomenis ir visus bendrai naudojamus duomenis, bet tik atitinkamus duomenis iš 1 lentelės, kuri yra kairioji jungtis.

Dešiniojo prisijungimo pavyzdys

Panašiai kaip kairiojo jungimo pavyzdyje, dešinysis išorinis sujungimas išveda visas vidinio sujungimo eilutes ir dvi eilutes - brokolius ir moliūgus - iš dešinės (Kiekiai lentelė), kurios kairėje pusėje nėra atitikimo įrašų.

Visas išorinis prisijungimas

Visiškas išorinis prisijungimas arba visiškas prisijungimas, kuris yra ne palaikomas populiarios „MySQL“ duomenų bazių valdymo sistemos, derina ir grąžina visi duomenys iš dviejų ar daugiau lentelių, neatsižvelgiant į tai, ar dalijamasi informacija. Galvokite apie visišką prisijungimą kaip tiesiog visos nurodytos informacijos kopijavimą, o ne vieną lentelę, o ne kelias lenteles. Jei trūksta atitikimo duomenų, bus pateikiami nuliniai duomenys.

Tai tik pagrindai, tačiau daug dalykų galima padaryti ir prisijungimais. Yra net jungčių, kurios gali pašalinti kitus prisijungimus!

Vaizdo įrašas, paaiškinantis vidinius ir išorinius sujungimus

Šis vaizdo įrašas paaiškina skirtingų tipų sujungimų skirtumus. Nurodoma pradėti nuo to momento, kai prasideda diskusija apie prisijungimus.

Nuorodos

  • Skirtumas tarp vidinio ir išorinio sujungimo - Kamino perpildymas
  • Vidinis SQL prisijungimas - Quackit
  • SQL išorinis prisijungimas - Quackit
  • Vidinių jungčių naudojimas - „Microsoft SQL Server“
  • Išorinių jungčių naudojimas - „Microsoft SQL Server“
  • Vizualinis SQL jungčių vaizdavimas - „CodeProject“
  • Vikipedija: prisijungti (SQL)