2020. március 4., szerda

Táblák összekapcsolása SQL-ben 12B

Az összetartozó információk több táblába vannak rendezve, így áttekinthetőbb és kevesebb a redundancia. Amikor lekérdezünk az adatbázisból és több tábla tartalmazza a szükséges adatokat  összekapcsoljuk a táblákat, ami lehet belső vagy külső;

    belső összekapcsolás (INNER JOIN)
    külső összekapcsolás (OUTER JOIN)

Az összekapcsolás lényege, hogy több táblából egyet csinál oly módon, hogy az eredmény tábla sorai az eredeti táblák megfelelő sorainak egymás mellé írásával keletkeznek. Hogy mit jelent a "megfelelő", az az összekapcsolás feltételében adható meg. Ez leggyakrabban abból áll, hogy az egyik tábla rekordjaiban található valamelyik mező meg kell egyezzen a másik tábla rekordjának egy mezőjével. Itt tipikusan a feltételben szereplő egyik mező kulcs szokott lenni, de ez nem kötelező.
Példa

Tekintsük a következő táblákat:






































Ha a Diák tábla "of" mezőjét rendeljük a Tanát tábla "sor" mezőjéhez, akkor a következő összekapcsolt táblát kapjuk.

Belső összekapcsolása

Összekapcsolás a "WHERE" záradékban
SELECT *
FROM T1, T2
WHERE T1.kulcs = T2.kulcs

Összekapcsolás a "FROM" záradékban
SELECT *
FROM T1 INNER JOIN T2 ON T1.kulcs = T2.kulcs

Több tábla összekapcsolása

SELECT *
FROM T1, T2, T3
WHERE T1.ka = T2.ka AND T2.kb = T3.kb

SELECT *
FROM (T1 INNER JOIN T2 ON T1.ka=T2.ka) INNER JOIN  T3 ON T2.kb=T3.kb
Külső összekapcsolás

Asszimetrikus, lehet jobb (RIGHT) vagy bal (LEFT).
SELECT *
FROM T1 LEFT OUTER JOIN T2 ON T1.kulcs=T2.kulcs

Ha a T1 tábla adott rekordjához nincs "pár" T2-ben, akkor is bekerül az eredmény táblába, és T2 mezői "NULL" értéket kapnak.

http://info.berzsenyi.hu/adatbazisok/tablak-oesszekapcsolasa

Nincsenek megjegyzések:

Megjegyzés küldése