SQL - Bal join
A Left Join kulcsszóval visszatérhetünk a bal oldali táblázatba(tábla_név1), még akkor is ha a jobb oldali táblázattal nincs is eggyezés(tábla_név2). Arra is van lehetőségünk, hogy az első tábla minden adatát megjelenítsük az eredményben, attól függetlenül, hogy nincs a feltételben megadott tulajdonságú mező a második táblában.
Sql Left Join szintaxis:
SELECT oszlop_név
FROM tábla_név1
LEFT 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ábla:
| 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 kiszeretnénk íratni az összes személyt, rendelést és azokat is akik nem rendeltek semmit de a személy táblázatban viszont szerepel.
Kód:
SELECT személy.vezetéknév, személy.keresztnév, rendelés.rendelés_azonosító
FROM személy
LEFT JOIN rendelés
ON személy.személy_azonosító=rendelés.rendelés_azonosító
ORDER BY személy.keresztnév
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 |