Tablica usporedbe
Osnova za usporedbu | Lijevo vanjsko spajanje | Desno Outer Join | Full Outer Join |
---|---|---|---|
Osnovni, temeljni | Sve tuple lijeve tablice ostaju u rezultatu. | Sve tuple desnog stola ostaju u rezultatu. | Sve naljepnice s lijeve i desne strane ostaju u rezultatu. |
NULL proširenje | Tuple lijeve tablice koja nema odgovarajuću točku u desnoj tablici proširene su s NULL vrijednošću za atribute desne tablice. | Tuple desne tablice koje nemaju odgovarajuću točku u lijevoj tablici proširene su s NULL vrijednošću za atribute lijeve tablice. | Tuple lijeve i desne tablice koje nemaju odgovarajuće tuple u desnoj i lijevoj tablici, se proširuju s NULL vrijednošću za atribute desnih i lijevih tablica. |
Definicija lijevog vanjskog spajanja
Pretpostavimo da imamo: " Tablica_Lijevo Outer Join Table_B ". Tako je Table_A naša lijeva tablica kako se čini lijevo od lijeve Outer Join operacije i Table_B je naša desna tablica.
Prvobitno, unutarnje spajanje bi se primijenilo na Table_A i Table_B, što će vratiti sve odgovarajuće brojeve iz tablice A i B.
Zatim će vratiti sve tuple iz Table_A koje nemaju odgovarajući tuple u Table_B. Tako da bi se rezultirajuće tuple dodavale NULL vrijednostima za atribute desne tablice.
Prema tome, rezultat dobiven od lijevog vanjskog pridruživanja zadržava sve torke iz lijeve tablice i samo odgovarajući torkovi s desne tablice.
Dopustite nam da razgovaramo o lijevom vanjskom članu s primjerom; imamo dvije tablice u nastavku, Studentski stol i Tablica odjela .
Sada ćemo primijeniti lijevo vanjsko pridruživanje, na tablicu studenata i odjela.
SELECT * FROM Student LEFT OUTER JOIN Odjel
ON Student. Student_ID = Odjel.Student_ID
U gornjem upitu, tablica Student je lijeva tablica, a tablica Odjel je desna tablica. Dakle, prema lijevom vanjskom spajanju, rezultat mora imati sve torpe iz Studentskog stola, a samo podudaranja iz tablice Odjela.
Definicija desnog vanjskog spajanja
Pretpostavimo da imamo: " Tablica_A Pravo vanjsko spajanje tablice_B ". Tako je Table_A naša lijeva tablica kako se pojavljuje lijevo od Right Outer Join operacije, a Table_B je naša desna tablica.
Kao u lijevom vanjskom spoju, inicijalno, unutarnje spajanje bi se primijenilo na Table_A i Table_B što će vratiti sve odgovarajuće brojeve iz tablice A i B.
Zatim će vratiti sve tuple iz Table_B koje nemaju odgovarajući tuple u Table_A. Tako da bi se rezultirajuće tuple dodavale NULL vrijednostima za atribute lijeve tablice.
Dakle, rezultat dobiven iz desnog vanjskog spajanja zadržava sve torpe s desne tablice i samo odgovarajući tuples iz lijeve tablice.
Dopustite nam da raspravimo o Pravom vanjskom pridruživanju s primjerom; iznad imamo dvije tablice, Studentski stol i Stol odjela.
Sada ćemo primijeniti desnu vanjsku tablu i stolni stol.
SELECT * FROM Student RIGHT OUTER JOIN Odjel
ON Student. Student_ID = Odjel.Student_ID
U gore navedenom upitniku, Studentski stol je naš lijevi stol, a tablica odjela je naša desna tablica. Prema operaciji desnog vanjskog spajanja, rezultat mora uključivati sve torpe iz tablice Odjela i samo podudaranja iz učeničke tablice.
Definicija Full Outer pridružiti
Pretpostavimo da imamo: " Tablica_Polni vanjski stol za spajanje_B ". Tako je Table_A naša lijeva tablica jer se pojavljuje lijevo od Full Outer Join operacije i Table_B je naša desna tablica.
Full Outer Join je kombinacija oba, Left Outer Join i Right Outer Join . U početku, primjenjuje unutarnje pridruživanje na Table_A i Table_B za dohvaćanje odgovarajućih brojeva iz obje tablice. Tada se proširuju one torke od Table_A s NULL-om koje nemaju odgovarajući tuple u Table_B. Nadalje, ona proširuje one torke iz Table_B s NULL-om koji nemaju odgovarajuću točku u Table_A.
Dakle, Full Outer Join zadržava sve torke s lijeve i desne tablice, zajedno s odgovarajućim brojevima obaju tablica.
Porazgovarajmo o FULL Outer Joinu s primjerom; imamo dvije tablice iznad, Studentski stol i Stol odjela .
Sada ćemo primijeniti Full Outer Join na Studentski stol i Stol odjela.
SELECT * FROM Student FULL OUTER JOIN Odjel
ON Student. Student_ID = Odjel.Student_ID
U gore navedenom upitu, Student Table je naš lijevi stol, a stolni stol je naša desna tablica. Prema Full Outer Join, rezultat mora uključivati sve torpe iz oba tablice.
Ključne razlike između lijevog, desnog i punog vanjskog pridruživanja
- Rezultat lijevog vanjskog pridruživanja ima sve torke lijeve tablice. Slično tome, rezultat Pravog vanjskog pridruživanja ima sve torke desne tablice. A rezultat Full Outer Join-a ima sve torke s lijeve i desne tablice.
- U lijevom vanjskom pridruživanju, brojeve lijeve tablice koje nemaju odgovarajuću točku u desnoj tablici proširuju se vrijednostima Null za atribute desne tablice. Suprotno je slučaju za Right Outer Join. A u Full Outer Join, torke s lijeve i desne tablice koje nemaju odgovarajuće tuples u desnoj i lijevoj tablici, respektivno se proširuju s NULL za atribute desne i lijeve tablice.
Zaključak:
Vodite računa o položajima imena tablica u upitu. Kako položaj imena tablice u upitu odlučuje hoće li se tablica smatrati lijevom tablicom ili desnom tablicom.