Kairė vs dešinė Prisijunkite
Kai kalbama apie SQL, prisijungimai yra įprastas vardas, kuris pasirodys kaskart. Prisijungimo sąlyga padeda derinti įrašus iš skirtingų duomenų rinkinio lentelių. Susijungimas sukuria lentelę, kurią galima naudoti tokią, kokia ji yra, arba išplėsti su kitais. Todėl patartina suprasti šias jungtis ir jų skirtumus, kad žinotumėte konkretų prisijungimą ir tai, ar reikia atsižvelgti į dešinę ar į kairę ypatingais atvejais..
Norint geriau suprasti prisijungimus ir jų skirtumus, svarbu suprasti galimų jungčių tipus. Paprastai yra trijų rūšių sujungimai. Šios jungtys apima vidinį sujungimą, kryžminį sujungimą ir išorinį sujungimą. Vidinis sujungimas paprastai lygina lenteles ir duos arba grąžins rezultatą tik tuo atveju, jei bus rasta atitiktis. Pagrindinė vidinio sujungimo funkcija yra sumažinti rezultatų rinkinių dydį.
Kita vertus, kryžminiai sujungimai lygina dvi lenteles ir pateikia kiekvieno galimo derinio, gauto iš abiejų lentelių eilučių, grąžą. Iš šio prisijungimo tikimasi daugybės rezultatų ir dauguma jų gali net neturėti prasmės. Todėl šį prisijungimą reikia naudoti atsargiai.
Išorinis sujungimas lygina lenteles ir grąžina duomenis, kai pasiekiama atitiktis. Kaip matoma vidiniame sujungime, išorinis sujungimas dubliuoja eilutes tam tikroje lentelėje tuo atveju, jei matomi atitinkami įrašai. Išorinių sujungimų rezultatai paprastai yra didesni, taigi duomenų rinkiniai yra dideli, nes pats rinkinys nėra pašalinamas iš rinkinio.
Kairysis sujungimas reiškia visų 1-osios lentelės įrašų saugojimą, neatsižvelgiant į rezultatą, ir NULL reikšmių įterpimą, kai antrosios lentelės vertės nesutampa. Dešinė jungtis, kita vertus, reiškia visų įrašų, gaunamų iš antrosios lentelės, saugojimą, nepriklausomai nuo to, koks yra rezultatas, ir NULL reikšmių naudojimą, kai rezultatai nesutampa su 1 lentelės rezultatais..
Taigi kairysis išorinis sujungimas išlaiko visas eilutes, esančias „kairėje“ lentelėje, neatsižvelgiant į tai, ar „dešinėje“ lentelėje yra eilutė, atitinkanti ją. Taigi kairioji lentelė nurodo lentelę, kuri pirma pateikiama bendrame pareiškime. Jis turėtų būti kairėje pusėje esančio raktinio žodžio „prisijungti“, esančio ant stalo. Kai kairysis išorinis sujungimas atliekamas, visos eilutės iš kairės turėtų būti grąžintos. Nesuderinami stulpeliai lentelėje bus užpildyti NULL, kai nebus atitikties.
Svarbu atkreipti dėmesį į tai, kad nagrinėjant šias dvi jungtis, visos eilutės iš kairės lentelės pateikiamos lentelės kairėje išorinėje jungtyje. Rezultatai rodomi patys, neatsižvelgiant į tai, ar dešinėje lentelėje yra atitinkamų stulpelių. Dešiniajame išoriniame sujungime rodomos visos eilutės iš dešinės ir tai nepriklausomai nuo to, ar kairiojoje lentelės pusėje yra atitinkamų stulpelių.
Pasirinkimas, ar eiti kairės, ar dešinės, išorinės jungties atžvilgiu, nesvarbu, nes rodomi tie patys rezultatai. Funkcija, kurią pateikia dešinysis išorinis sujungimas, yra tokia pati, kaip ir kairioji išorinė jungtis. Paprasčiausiai perjungę lentelių pateikimo SQL sakinyje tvarką, galite tikėtis panašių rezultatų, nepriklausomai nuo naudojamo prisijungimo.
Santrauka
Jungtys susideda iš trijų pagrindinių grupių - vidinės jungtys, kryžminės jungtys ir išorinės jungtys
Kairėje išorinėje jungtyje rodomos visos eilutės iš lentelės kairės
Dešinysis sujungimas rodo visas eilutes iš lentelės dešinės
Kintama SQL seka gali panaikinti tiek dešinės, tiek kairės išorinių jungčių naudojimą, o naudoti tik vieną.