Összehasonlító táblázat
Az összehasonlítás alapja | Bal oldali csatlakozás | Jobb külső csatlakozás | Teljes 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és | A 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.
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.
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.
A bal, a jobb és a teljes külső csatlakozás közötti különbségek
- 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.
- 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.