A MySQL self join egy olyan típusú join, amikor egy tábla önmagával van összekapcsolva. Ez akkor hasznos, ha egy táblában lévő adatokat össze kell kapcsolni (vagy hasonlítani) ugyanannak a táblának más soraival.
A self join használatához a következő lépéseket kell végrehajtani:
Van egy dolgozok tábla, amelyben a dolgozók adatai találhatók, és szeretnénk megtalálni azokat a dolgozókat, akik ugyanannak a vezetőnek a vezetése alatt dolgoznak, akkor a következő lekérdezést használhatjuk:
SELECT dolgozo.nev, vezeto.nev
FROM dolgozok as dolgozo
INNER JOIN dolgozok as vezeto ON dolgozo.vezeto_id = vezeto.id;
Ebben a példában a dolgozok tábla önmagával van összekapcsolva az INNER JOIN használatával. A join feltétele az, hogy a vezeto_id oszlop értéke megegyezzen a másik tábla id oszlopának értékével.
A self join használata lehetővé teszi, hogy összetett lekérdezéseket hajtsunk végre egyetlen táblán, anélkül, hogy szükség lenne további táblák létrehozására.
Táblák: sql
dolgozok
| id | nev | kor | fizetes | osztaly | vezeto_id |
|---|---|---|---|---|---|
| 1 | Kovács János | 30 | 200000 | 1 | 3 |
| 2 | Szabó István | 25 | 180000 | 1 | 3 |
| 3 | Nagy Zoltán | 40 | 250000 | 2 | null |
| 4 | Tóth Mária | 28 | 220000 | 2 | 1 |
| 5 | Kiss Péter | 35 | 200000 | 1 | 2 |
osztalyok
| id | nev | atlag_fizetes |
|---|---|---|
| 1 | Értékesítés | 210000 |
| 2 | Fejlesztés | 230000 |
Feladatok: