Võrdluskaart
Võrdluse alus | Vasakpoolne liitumine | Parem Outer Join | Täis Outer Join |
---|---|---|---|
Põhiline | Kõik vasaku tabeli numbrid jäävad tulemuseks. | Kõik parempoolse tabeli numbrid jäävad tulemuseks. | Kõik vasakul ja paremal olevad tabelid jäävad tulemuseks. |
NULL pikendamine | Vasakule tabelile, millel ei ole parempoolses tabelis sobivat tuple, laiendatakse parempoolse tabeli atribuutidele NULL-väärtust. | Parempoolse tabeli tuple, millel ei ole vasakus tabelis sobivat tuple, laiendatakse vasaku tabeli atribuutidele NULL väärtusega. | Vasakul ja paremal asuval tabelil, millel ei ole parempoolses ja vasakpoolses tabelis vastavaid tuppe, laiendatakse parempoolse ja vasakpoolse tabeli atribuutidele NULL-väärtust. |
Vasakpoolse liitumise mõiste
Oletame, et meil on “ Table_A Left Outer Join Table_B ”. Nii et Table_A on meie vasakpoolne tabel, mis ilmub vasakpoolsest liitumisoperatsioonist vasakule ja Table_B on meie parem tabel.
Esialgu rakendataks sisemist liitu tabelis_A ja tabelis_B, mis tagastab kõik tabelis A ja B toodud sobitamisnumbrid.
Järgmisena tagastab ta kõik tabelid_A tabelid, millel pole tabelis_B sobivat numbrit. Nii oleksid saadud numbrid parempoolse tabeli atribuutide jaoks polsterdatud NULL väärtustega.
Järelikult säilitab vasakpoolsest liitumisest saadud tulemus kõik tabelid kõikidest tabelitest ja ainult sobivatest sortidest paremast tabelist.
Arutlege vasakpoolset liitumist näitega; allpool on kaks tabelit, üliõpilasesinduse ja osakonna tabel.
Nüüd rakendame õpilaste ja osakondade tabelis vasakpoolset liitumist.
SELECT * FROM Student LEFT OUTER JOIN osakond
Õpilane. Student_ID = Department.Student_ID
Ülaltoodud päringus on tabel Õpilane vasakul tabelil ja tabelil on parem tabel. Nii et vastavalt vasakpoolsele liitumisele peab tulemusel olema kõik õpilaste tabeli numbrid ja ainult vastav tabel osakonna tabelist.
Õige välimise liitumise mõiste
Oletame, et meil on “ Table_A Right Outer Join Table_B ”. Seega on Table_A meie vasakpoolne tabel, mis ilmub vasakule paremale Outer Join operatsioonile ja Table_B on meie parem tabel.
Sarnaselt vasakpoolsele liitumisele rakendataks algselt sisemist liitu tabelis_A ja tabelis_B, mis tagastab kõik tabelis A ja B toodud sobiva numbri .
Järgmisena tagastab ta kõik tabelid_B tabelid, millel pole tabelis_A sobivat tuple. Nii oleksid saadud numbrid nihutatud NULL väärtustega vasaku tabeli atribuutide jaoks.
Seega säilitab paremast välimisest liitumisest saadud tulemus kõik tabelid parempoolsest tabelist ja ainult vastavad tabelid vasakust tabelist.
Arutagem näiteks paremat välist liitu; ülalpool on meil kaks tabelit, õpilaste tabel ja osakonna tabel.
Nüüd rakendame Õigus Välisliitumist õpilaste tabeli ja osakonna tabeliga.
SELECT * FROM Student RIGHT OUTER JOIN osakonnast
Õpilane. Student_ID = Department.Student_ID
Ülaltoodud päringul on õpilaste tabel meie vasaku tabeli ja osakonna tabel on meie parem tabel. Vastavalt parempoolsele liitumisoperatsioonile peab tulemus sisaldama kõiki osakonna tabeli numbreid ja ainult õpilaste tabeli vastavaid tuppe.
Täisliidese määratlus
Oletame, et meil on “ Table_A Full Outer Join Table_B ”. Nii et Table_A on meie vasakpoolne tabel, mis ilmub vasakule Full Outer Join operatsioonile ja Table_B on meie parem tabel.
Full Outer Join on mõlema kombinatsioon, vasakpoolne liitumine ja parem välimine liitumine . Esialgu rakendab ta tabelis_A ja Table_B sisemist liitu, et leida vastav tabel mõlemast tabelist. Seejärel laiendab see tabeli_AAL-i numbreid NULL-iga, millel pole tabelis_B sobivat numbrit. Lisaks laiendab see neid tabeleid tabelist_B NULL-iga, millel ei ole tabelis_A sobivat tuple.
Seega säilitab Full Outer Join kõik numbrid nii vasakult kui ka parempoolsest tabelist koos mõlema tabeli sobivatega.
Arutlege FULL Outer Join koos näitega; meil on kaks ülaltoodud tabelit, üliõpilasesinduse ja osakonna tabel.
Nüüd rakendame Full Outer Join õpilaste tabeli ja osakonna tabeli.
SELECT * FROM Student FULL OUTER JOIN osakond
Õpilane. Student_ID = Department.Student_ID
Ülaltoodud päringul on õpilaste tabel meie vasakul tabelil ja osakonna tabel on meie parem tabel. Vastavalt Full Outer Join'ile peab tulemus sisaldama kõiki tabeleid.
Vasakpoolsete, parempoolsete ja täisliideste vahelised peamised erinevused
- Vasakpoolse liitumise tulemusel on kõik vasakpoolse tabeli numbrid. Samamoodi on parema välimise liitumise tulemusel kõik parempoolse tabeli numbrid. Ja täisliidese tulemuse tulemusel on kõik tabelid nii vasakult kui paremalt tabelist.
- Vasakpoolses liitumises pikendatakse vasakpoolse tabeli tuple, millel ei ole parempoolses tabelis sobivat tuple, parempoolse tabeli atribuutide Null väärtustega. Vastasel juhul on õige Outer Join. Ja täisliideses laiendatakse vasak- ja parempoolsetest tabelitest pärinevaid tuppe, millel ei ole vastavalt parempoolsetes ja vasakpoolsetes tabelites vastavaid tuppe, vastavalt parempoolse ja vasakpoolse tabeli atribuutidele vastavalt NULL-iga.
Järeldus:
Hoolitsege tabelis olevate nimede kohta päringus. Kuna tabeli nime asukoht päringul otsustab, kas tabelit peetakse vasakule tabelis või paremas tabelis.