Ajánlott, 2024

Szerkesztő Választása

Különbség a bal, jobb és a teljes külső csatlakozás között

Korábban megvitattuk az Inner Join és az Outer Join közötti különbségeket, ahol áttekintettük az Outer Join típusait. Az Outer Join az, aki megőrzi a sorokat az eredményben, amely elveszett volna a Csatlakozás művelet közben. Ebben a cikkben; megvitatjuk a különbségeket a Külső Csatlakozás típusai között. A külső csatlakozásnak három típusa van; Bal oldali csatlakozás, jobb külső csatlakozás és teljes külső csatlakozás. A bal, jobb és teljes külső csatlakozás eltér a végrehajtási tervüktől és a kapott eredményektől. Elhagyhatunk egy külső szót a bal, jobb és a teljes külső csatlakozásból. Vizsgáljuk meg a bal, jobb és teljes külső csatlakozások közötti különbségeket az alábbi táblázat segítségével.

Összehasonlító táblázat

Az összehasonlítás alapjaBal oldali csatlakozásJobb külső csatlakozásTeljes külső csatlakozás
AlapvetőA bal oldali asztal összes sora az eredményben marad.A jobb oldali táblázat összes példánya az eredményben marad.A bal oldali és a jobb oldali táblák összes eredményei az eredményben maradnak.
NULL kiterjesztésA jobb oldali táblázatban a bal oldali tábla párosai, amelyek nem rendelkeznek megfelelő betűvel, NULL értékkel bővülnek a jobboldali attribútumokhoz.A jobb oldali tábla sorai, amelyek nem rendelkeznek a megfelelő táblával a bal oldali táblázatban, NULL értékkel bővülnek a bal oldali táblázat attribútumai számára.
A jobb oldali és a bal oldali táblázatban a bal oldali és a jobboldali sorok, amelyek nem rendelkeznek a megfelelő és a megfelelő asztalokkal, NULL értékkel bővülnek a jobb és a bal oldali táblák attribútumai számára.

A bal oldali csatlakozás meghatározása

Tegyük fel, hogy „ Table_A Left Outer Join Table_B ”. Tehát a Table_A a bal oldali asztalunk, ahogy a bal oldali Outer Join művelet bal oldalán látható, és a Table_B a jobb oldali asztalunk.

Kezdetben a belső csatlakozást a (z) Table_A és Table_B táblákon alkalmaznánk, amelyek visszaadják az A és B táblázatban szereplő összes egyezést.

Ezután visszaadja az összes táblát a Table_A-tól, amelyek nem rendelkeznek megfelelő táblával a (z )_B táblázatban. Ilyen módon az eredményül kapott sorok NULL értékekkel vannak ellátva a jobb asztal attribútumaihoz.

Ezért a bal oldali csatlakozásból nyert eredmény megőrzi a bal oldali asztal összes sorát, és csak a megfelelő táblázatból áll.

Beszéljünk baloldali csatlakozással egy példával; Két táblázatunk van, a Diákasztal és az Osztálytábla .

Most a bal oldali csatlakozást alkalmazzuk a Diák- és Osztálytáblán.

SELECT * FROM Student LEFT OUTER JOIN osztály
ON hallgató. Student_ID = Tanszék.Student_ID

A fenti lekérdezésben az asztal diák a bal oldali tábla és a tábla osztály a megfelelő táblázat. Tehát a bal oldali csatlakozás szerint az eredménynek meg kell adnia a Student táblából az összes rekordot, és csak az osztálytáblázatból származó illesztéseket.

Vegye figyelembe a baloldali csatlakozás eredményét; a hallgatói asztal összes rekordja és a diákok és a tanszékek táblázatának megfelelő egyeztetései. Jimmy hallgatója, Joseph Harry a Diákasztalról nem volt jelen az osztálytáblán. Ezért Jimmy, Joseph Harry osztályosztályának attribútumértékei NULL-re bővülnek.

Jobb külső csatlakozás meghatározása

Tegyük fel, hogy „ Table_A Right Outer Join Table_B ”. Tehát a Table_A a bal oldali asztalunk, amint a jobb oldali csatlakozási művelet bal oldalán látható, és a Table_B a jobb oldali asztalunk.

A bal oldali csatlakozáshoz hasonlóan kezdetben a belső csatlakozást a (z) Table_A és Table_B táblákon alkalmazzák, amelyek visszaadják az A és B táblázatban szereplő összes egyezést.

Ezután visszaadja az összes táblát a Table_B-ből, amelyek nem rendelkeznek megfelelő táblával a Table_A-ban. Ilyen módon az eredményül kapott sorok NULL értékekkel vannak párosítva a bal oldali táblázat attribútumaihoz.

Ennélfogva a jobb külső csatlakozásból kapott eredmény megtartja a jobb oldali összes sort, és csak a bal oldali táblázatból egyezik meg.

Beszéljünk a jobb oldali csatlakozással egy példával; fentebb két táblázatunk van, a hallgatói asztal és az osztálytábla.

Most alkalmazzuk a jobb oldali csatlakozást a diákasztalhoz és az osztálytáblához.

SELECT * FROM Student RIGHT OUTER JOIN osztályból
ON hallgató. Student_ID = Tanszék.Student_ID

A fenti lekérdezésben a Student Table a bal oldali asztalunk, és az osztálytáblázat a jobb oldali táblázatunk. A jobb oldali csatlakozási művelet szerint az eredménynek tartalmaznia kell az osztálytáblázat összes rekordját és csak a Student Table táblázatból származó egyezéseket.

Vegye figyelembe a jobb külső csatlakozás eredményét; a Tanszéktáblázat összes rekordja és a diákok és a tanszékek táblázatának megfelelő egyeztetései. A Tanszék táblázatban a Student_ID 10536 és 00954, az Osztálytábla nem szerepel. Ezért a Name for Student_ID 10536 és 00954 attribútum értéke NULL-re bővül.

Teljes körű csatlakozás meghatározása

Tegyük fel, hogy „ Table_A Full Outer Join Table_B ” van. Tehát a Table_A a bal oldali asztalunk, ahogy a Full Outer Join művelet bal oldalán látható, és a Table_B a jobb oldali asztalunk.

A teljes külső csatlakozás mindkettő kombinációja, bal oldali csatlakozás és jobb oldali csatlakozás . Kezdetben a Table_A és a Table_B belső csatlakozást alkalmaz, hogy a megfelelő táblákat mindkét táblázatból lekérje. Ezután kiterjeszti azokat a Table_A sorokat, amelyek NULL- lal nem rendelkeznek megfelelő táblával a (z )_B táblázatban. Ezenkívül kiterjeszti azokat a táblákat a (z) Table_B táblázatból NULL- lel, amelyek nem rendelkeznek megfelelő táblával az Table_A-ban.

Ezért a Full Outer Join megtartja a bal és a jobb oldali összes rekordot, valamint a táblázatok megfelelő sorait.

Beszéljünk a FULL Outer Join-el egy példával; két táblázatunk van, a Diákasztal és az Osztálytábla .

Most teljes körű csatlakozást fogunk alkalmazni a diákasztalhoz és az osztálytáblához.

SELECT * FROM Student FULL OUTER JOIN osztály
ON hallgató. Student_ID = Tanszék.Student_ID

A fenti lekérdezésben a Student Table a bal oldali asztalunk, és az osztálytáblázat a jobb oldali táblázatunk. A Full Outer Join szerint az eredménynek tartalmaznia kell mind a táblák mindegyikét.

Vegye figyelembe a teljes külső csatlakozás eredményét; a hallgatói és a tanszéki tábla összes rekordja, valamint a diákok és a tanszékek táblázatának megfelelő egyeztetései. Jimmy hallgatója , Joseph Harry, azaz 10026, 02256, 56362 hallgatói asztal, nem volt jelen az osztálytáblán. Ezért a Jimmy, Joseph Harry osztályosztályának attribútumértékei NULL-re bővülnek. A Student_ID 10536 és 00954, az Osztálytáblázat, nem szerepelnek a Student_ID oszlopban a Student táblázatban. Ezért a Name_ attribútum attribútumértéke a Student_ID 10536 és 00954 számára kiterjed a NULL-re .

A bal, a jobb és a teljes külső csatlakozás közötti különbségek

  1. A bal oldali csatlakozás eredménye a bal oldali asztal összes sora. Hasonlóképpen, a jobb oldali csatlakozás eredménye a jobb oldali táblázat összes sora. A Full Outer Join eredménye pedig mind a bal, mind a jobb oldali táblából.
  2. A bal oldali csatlakozásnál a jobb oldali táblázatban a bal oldali tábla sorai nem találhatók meg a jobb oldali Null értékekkel. A jobb oldali csatlakozásnál ellentétes. A Full Outer Join-ban a jobb és bal oldali táblázatokban a megfelelő és a bal oldali táblázatokban nem szereplő sorok a jobb és bal oldali táblákban a jobb és a bal oldali táblázat attribútumaira kiterjednek.

Következtetés:

Vigyázzon a táblázat neveinek helyére egy lekérdezésben. Mivel a táblázatnév neve a lekérdezésben eldönti, hogy a táblát bal táblázatnak vagy jobboldali táblázatnak kell tekinteni.

Top