Soovitatav, 2024

Toimetaja Valik

Vasakpoolsete, parempoolsete ja täisliideste vaheline erinevus

Varem oleme arutanud erinevusi Inner Join'i ja Outer Join'i vahel, kus oleme tutvustanud Outer Join'i tüüpe. Outer Join on see, kes säilitab tulemused, mis oleksid liitumise ajal kadunud. Käesolevas artiklis; me arutame erinevusi välise liitumise tüüpide vahel. Outer Join on kolm tüüpi; Vasakpoolne liitumine, parem välimine liitumine ja täisliitumine. Vasak, parem ja täielik välimine liitumine erineb nende täitmisplaanist ja saadud tulemustest. Me võime välist sõna vasakult, paremalt ja täisliidult välja jätta. Uurige allpool näidatud võrdlustabeliga erinevusi vasakpoolse, parema ja täisvälise liitumise vahel.

Võrdluskaart

Võrdluse alusVasakpoolne liitumineParem Outer JoinTäis Outer Join
PõhilineKõ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 pikendamineVasakule 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.

Jälgige vasakpoolse liitumise tulemust; sellel on kõik õpilaste tabelis olevad numbrid koos õpilaste ja osakondade tabeli sobivatega. Jimmy õpilane, Joseph Harry õpilaste tabelist, ei olnud osakonna tabelis. Seega laiendatakse Jimmy, Joseph Harry osakonna laua atribuutide väärtusi NULL-ile.

Õ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.

Jälgige parema välimise liitumise tulemust; sellel on kõik osakonna tabeli numbrid koos sobivate numbritega nii õpilaste kui ka osakonna tabelist. Üliõpilasesinduse Student_ID 10536 ja 00954 ei ole õpilaste tabelis. Seega laiendatakse Name for Student_ID 10536 ja 00954 atribuutiväärtust NULL-le.

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.

Jälgige täieliku välimise liitumise tulemust; sellel on kõik õpilaste ja osakonna tabeli numbrid koos sobivate numbritega nii õpilaste kui ka osakonna tabelist. Jimmy üliõpilane , Joseph Harry ehk 10026, 02256, 56362 õpilaste tabelist, ei olnud osakonna tabelis. Seega laiendatakse Jimmy, Joseph Harry osakonna tabeli atribuutide väärtusi NULL-le . Student_ID 10536 ja 00954, osakonna tabel, ei ole Student tabeli Student_ID veerus. Seega laiendatakse Student atribuudi atribuutiväärtust Student_ID 10536 ja 00954 jaoks NULL-le .

Vasakpoolsete, parempoolsete ja täisliideste vahelised peamised erinevused

  1. 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.
  2. 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.

Top