SQL JOIN-ok – INNER, LEFT és kapcsolatok
SQL JOIN vizuálisan: INNER JOIN, LEFT JOIN és hogyan kombinál az adatbázis kapcsolódó sorokat több táblából.
Röviden
A JOIN több reláció sorait kapcsolja össze egy feltétel alapján. Nem azt jelenti, hogy az adatbázis fizikailag összemásolja a táblákat; a lekérdezés eredményéhez kombinálja a megfelelő rekordokat.
Mit jelent a sql join-ok – inner, left és kapcsolatok?
A JOIN több reláció sorait kapcsolja össze egy feltétel alapján. Nem azt jelenti, hogy az adatbázis fizikailag összemásolja a táblákat; a lekérdezés eredményéhez kombinálja a megfelelő rekordokat.
INNER vagy LEFT JOIN?
users
1 Anna 2 Bence 3 Csilla
plans
1 Plus 2 Go
INNER JOIN eredmény
Anna – Plus Bence – Go
Hogyan működik a gyakorlatban?
INNER JOIN csak a mindkét oldalon illeszkedő sorokat adja. LEFT JOIN a bal oldal minden sorát megtartja, és ahol nincs pár, a jobb oldal mezői NULL értékkel jelennek meg. Több join és aggregáció már könnyen megsokszorozhatja a sorokat, ezért érteni kell a cardinalityt.
- JOIN feltétel tipikusan key kapcsolatot fejez ki.
- LEFT JOIN kellhet akkor, ha a hiányzó kapcsolat is információ.
- N:N kapcsolatot junction table modellezhet.
- Aggregáció előtt ellenőrizd, hogy a join nem duplikálja-e váratlanul a sorokat.
Gyakorlati fejlesztői szemlélet
Query íráskor először mondd ki, mi legyen az eredmény egy sora. Ez segít eldönteni, milyen join és group kell, és hamarabb észreveszed a véletlen row multiplicationt.
Gyakori hibák és félreértések
- JOIN-t automatikusan lassúnak tartani.
- WHERE feltétellel véletlenül INNER viselkedésűvé tenni LEFT JOIN-t.
- N:N kapcsolatot vesszővel elválasztott ID listában tárolni.
Források és szabványok
A technikai részletekhez elsődleges szabványokat és karbantartott hivatalos dokumentációt használok. Frameworkök, böngészők és webes API-k idővel változhatnak, ezért implementálás előtt mindig ellenőrizd az aktuális dokumentációt is.
Kapcsolódó ByBence Academy