I. Több táblás lekérdezések: Összekapcsolások (joins)
>> Gyakorlat példái: Dolgozo, Osztaly, Fiz_Kategoria táblák Oracle: createDolg.txt
Itt a Dolgozo és Osztaly közötti dolg(dkod, oazon) kapcsolat sok-egy kapcsolat,
azaz egy dolgozo nem dolgozhat több osztályon, legfeljebb csak egy osztályon,
(ha tudjuk, hogy a dolgozó melyik osztályon dolgozik, akkor az egyértelmű).
Hasonlóan két Dolgozo közötti fonok(dkod, fonoke) kapcsolat is ilyen sok-egy
kapcsolat. A sok-egy kapcsolatokat leíró táblák beolvadtak a Dolgozo táblába.

Táblák előkészítése az SQL-ben: create_dolgozo.txt (ez már volt)
Dolgozo (dkod, dnev, foglalkozas, fonoke, belepes, fizetes, jutalek, oazon)
Osztaly (oazon, onev, telephely)
Fiz_Kategoria (kategoria, also, felso)
Összefoglaló az összekapcsolásokról (folyt.később: outer join-ok)
-- Direkt szorzat: SELECT * FROM dolgozo, osztaly;
-- Természetes összekapcsolás és az inner join összehasonlítása:
SELECT dkod, dnev, oazon, onev FROM dolgozo NATURAL JOIN osztaly;
SELECT dkod, dnev, dolgozo.oazon, onev FROM dolgozo, osztaly
WHERE dolgozo.oazon=osztaly.oazon;
SELECT dkod, dnev, dolgozo.oazon, onev FROM dolgozo JOIN osztaly
ON dolgozo.oazon=osztaly.oazon;
-- Theta-join:
SELECT * FROM dolgozo JOIN fiz_kategoria ON fizetes BETWEEN also and felso;
SELECT * FROM dolgozo JOIN fiz_kategoria ON fizetes >= also and fizetes <= felso;
1. Kik azok a dolgozók, akiknek nincs főnöke?
2. Kik azok a dolgozók, akiknek a főnöke KING?
3. Adjuk meg azokat a dolgozókat, akik többet keresnek a főnöküknél.
4. Adjuk meg azoknak a főnököknek a nevét, akiknek a foglalkozása
nem 'MANAGER'.
5. Kik azok a dolgozók, akik főnökének a főnöke KING?
6. Kik azok a dolgozók, akik osztályának telephelye DALLAS vagy CHICAGO?
7. Kik azok a dolgozók, akik osztályának telephelye nem DALLAS és nem CHICAGO?
8. Adjuk meg azoknak a nevét, akiknek a fizetése > 2000 vagy
a CHICAGO-i osztályon dolgoznak.
9. Melyik osztálynak nincs dolgozója?
10. Adjuk meg azokat a dolgozókat, akiknek
van 2000-nél nagyobb fizetésű beosztottja.
11. Adjuk meg azokat a dolgozókat, akiknek
nincs 2000-nél nagyobb fizetésű beosztottja.
12. Adjuk meg azokat a telephelyeket, ahol van elemző (ANALYST)
foglalkozású dolgozó.
13. Adjuk meg azokat a telephelyeket, ahol nincs elemző (ANALYST)
foglalkozású dolgozó.
14. Adjuk meg azon osztályok nevét és telephelyét, amelyeknek
van 1-es fizetési kategóriájú dolgozója.
15. Adjuk meg azon osztályok nevét és telephelyét, amelyeknek
nincs 1-es fizetési kategóriájú dolgozója.
Összekapcsolások (joins)
>> Oracle SQL demo példák: SQL07_osszekapcsolas.pdf (joins)
>> Oracle DB SQL Lang.Ref >> Joins (Self Joins, Inner Joins, Outer Joins)
(A fenti demo lekérdezésekhez volt: createHRsyn.txt szinonimák)
II. Több táblás lekérdezések: Külső összekapcsolások (outer joins)
-- Külső összekapcsolások/outer joinok:
SELECT * FROM dolgozo LEFT JOIN osztaly ON dolgozo.oazon=osztaly.oazon;
SELECT * FROM dolgozo RIGHT JOIN osztaly ON dolgozo.oazon=osztaly.oazon;
SELECT * FROM dolgozo FULL JOIN osztaly ON dolgozo.oazon=osztaly.oazon;
-- Külső összekapcsolások három típusa:
SELECT tábla1.oszlop, tábla2.oszlop
[{LEFT | RIGHT | FULL} OUTER JOIN tábla2
ON (tábla1.oszlopnév = tábla2.oszlopnév)]