Összefoglaló: ebben a bemutatóban megtanulja, hogyan használja a RIGHT OUTER JOIN
az Oracle-ben két vagy több táblázat összekapcsolására.
A RIGHT OUTER JOIN áttekintése az Oracle-ben
Tegyük fel, hogy van két táblánk T1
és T2
, a következő utasítás azt mutatja, hogyan lehet ezt a két táblát az Oracle-ben a RIGHT OUTER JOIN
záradékkal összekapcsolni:
Ebben az utasításban a T1
és a T2
a bal, illetve a jobb oldali tábla.
A OUTER
kulcsszó opcionális, ezért a RIGHT OUTER JOIN
és a RIGHT JOIN
ugyanaz.
Íme, hogyan működik a RIGHT OUTER JOIN
.
A T1
táblázat minden sorát összehasonlítjuk a T2
tábla soraival:
- Ha egy sorpár kielégíti a join predikátumot, a két sor oszlopértékeit kombináljuk, és így kapunk egy eredménysort, amely bekerül az eredményhalmazba.
- Ha a
T2
tábla egy sora nem egyezik aT1
tábla egyetlen sorával sem, akkor aT2
tábla sorának oszlopértékeit aT1
táblából származó sor minden egyes oszlopának NULL értékével kombináljuk az eredménysor létrehozásához, amely ezután szintén bekerül az eredményhalmazba.
Más szóval a jobb oldali külső összekapcsolás a jobb oldali tábla összes sorát és a bal oldali tábla megfelelő sorait is visszaadja.
Oracle RIGHT OUTER JOIN példák
A bemutatóhoz a mintaadatbázis orders
és employees
tábláit fogjuk használni:
A diagramban egy értékesítő egy vagy több értékesítési megbízásért felel. Előfordulhat azonban, hogy egyes értékesítési megbízásokért nem felelős egyetlen értékesítő sem.
A következő példa lekérdezi az összes értékesítőt és értékesítési megbízásaikat, ha vannak:
Az eredmény tartalmazza az összes olyan alkalmazottat, akinek a munkaköri címe Sales Representative
, valamint a megbízásaikat.
Ha egy értékesítő nem felelős egyetlen értékesítési megbízásért sem, például Alice Wells
, Charlotte Webb
, akkor a order_id
és status
oszlopok NULL értékkel lesznek kitöltve.
Oracle RIGHT OUTER JOIN with USING clause
A többi egyesítéshez hasonlóan, például INNER JOIN
, LEFT JOIN
, a USING
záradékkal megadhatjuk, hogy a táblák egyesítésekor melyik oszlopot vizsgáljuk az egyenlőségre.
Az alábbiakban a RIGHT OUTER JOIN
szintaxisát szemléltetjük a USING
záradékkal:
Ebben a lekérdezésben a USING
záradékban felsorolt oszlopoknak mind a T1
, mind a T2
táblákban szerepelniük kell.
A következő utasítás egyenértékű a fenti utasítással:
A következő utasítás a RIGHT OUTER JOIN
használatát mutatja be a USING
záradékkal:
Ebben a példában az összes ügyfél szerepel az eredményhalmazban. Ha egy ügyfélnek nincs értékesítési megrendelése, akkor a order_id
és status
oszlopok NULL értékkel töltődnek fel.
Oracle RIGHT JOIN: feltétel az ON vs. WHERE záradékban
A következő utasítás az 57-es azonosítójú eladó alkalmazott és megrendelés adatait szerzi meg.
A következő utasítás a ON
záradék helyett a WHERE
záradékba helyezi a feltételt:
A lekérdezés az összes alkalmazottat visszaadta, de csak az 57-es azonosítójú alkalmazottnak voltak meg a kapcsolódó rendelési adatai.
Megjegyezzük, hogy a INNER JOIN
tekintetében a ON
záradékban elhelyezett feltételnek ugyanaz a hatása, mint a WHERE
záradékban elhelyezettnek.
Ezzel a bemutatóval megtanulta, hogyan használhatja a RIGHT OUTER JOIN
-t az Oracle-ben több táblából történő adatlekérdezéshez.
- Hasznos volt ez a bemutató?
- IgenNem
Mi volt hasznos?