A JOIN utasítás és használata
Egy adatbázisban általában nem csak egy táblát tárolunk, hanem többet is, amelyet elsősorban az adatok átláthatóságának érdekében célszerű használni. Ezeket a táblákat azonban össze kell kapcsolni, vagyis ‘relációba’ kell helyezni egymásal, valamely mező vagy mezők alapján.
Az összekapcsolásnak többféle típusa létezik, de mindegyik a JOIN utasításhoz kapcsolódik: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN
A különböző típusok két tábla esetében az alábbiakban szemléltethetőek a halmazelmélet alapján.
INNER JOIN
Csak azokat a rekordokat adja vissza, amelyeknek a párja mind a két táblában előfordul.
LEFT JOIN
Visszaadja az összes rekordot a bal oldali táblából, melyhez társítja azokat a jobb oldali rekordokat, amelyekhez talált párt. Amely rekordokhoz nem talált párt, azokat NULL értékekkel tölti fel.
RIGHT JOIN
Visszaadja az összes rekordot a jobb oldali táblából, melyhez társítja azokat a bal oldali rekordokat, amelyekhez talált párt. Amely rekordokhoz nem talált párt, azokat NULL értékekkel tölti fel.
FULL OUTER JOIN
Visszaadja az összes rekordot függetlenül attól, hogy van-e párja valamelyik oldalon vagy sem. Amely rekordokhoz nem talált párt, azokat NULL értékekkel tölti fel.
INNER JOIN szintaxis
SELECT oszlop(ok)
FROM tábla1
INNER JOIN tábla2
ON tábla1.azonosító1=tábla2.azonosító2;
LEFT JOIN szintaxis
SELECT oszlop(ok)
FROM tábla1
LEFT JOIN tábla2
ON tábla1.azonosító1=tábla2.azonosító2;
RIGHT JOIN szintaxis
SELECT oszlop(ok)
FROM tábla1
RIGHT JOIN tábla2
ON tábla1.azonosító1=tábla2.azonosító2;
FULL OUTER JOIN
A MySQL-ben a FULL JOIN nem elérhető, de egy LEFT JOIN és egy RIGHT JOIN uniójával emulálható.
+
SELECT oszlop(ok)
FROM tábla1, tábla2
WHERE tábla1.azonosító1=tábla2.azonosító2;