SQL - Teljes join
A teljes join eseben azon értékeket kapjuk vissza akikhez tartozik rendelés és ezen felül azokat az egyéneket is akikhez nem tarozik rendelés és a rendeléshez sem tartozik személy. Tehát ebben az esetben egy tkiírásban megkapjuk az összes eredményt a két táblából.
Sql teljes join szintaxis:
SELECT oszlop_név
FROM tábla_név1
FULL JOIN tábla_név2
ON tábla_név1.oszlop_név=tábla_név2.oszlop_név
A "személy" táblázat:
| személy_azonosító | keresztnév | vezetéknév | cím | város |
| 1 | Péter | Kovács | Albert út 2 | Budapest |
| 2 | István | Tóth | Iskola út 34 | Debrecen |
| 3 | Viola | Kiss | Kiskörút út 12 | Kisköre |
| 4 | Aranka | Török | Széchenyi út 36 | Siófok |
A "rendelés" táblázat:
| rendelés_azonosító | rendelés_szám | személy_azonosító |
| 1 | 23415 | 3 |
| 2 | 22341 | 2 |
| 3 | 20210 | 3 |
| 4 | 12340 | 2 |
| 5 | 85275 | 23 |
Most szeretnénk felsorolni az összes egyént akihez tartozik rendelést, az összes olyan egyént akihez nem tartozik rendelés és azt is amely rendeléshez nem tartozik személy.
A megoldás kiírás szerint:
| István | Tóth | 22341 |
| István | Tóth | 12340 |
| Viola | Kiss | 23415 |
| Viola | Kiss | 20210 |
| Péter | Kovács | |
| Aranka | Török | |
| 85275 |
A teljes join visszaadja az összes sort a bal oldali táblázatból (személyek), valamint az összes sort a jobb oldali táblázatból (megrendelések). Ha vannak olyan sor a személyek táblázatban ami nem eggyezik a rendelés táblázat bármely sorával, vagy ha vna olyan rendelés ami nem eggyezik meg eggyetlen személy táblázat bármely sorával, azokat a sorokat is ki fogja írni a megoldásunkban.