Egy JOIN két tábla sorait egyesíti egy feltétel — általában egy idegen kulcs — illesztésével. A join típusa dönti el, mi történik azokkal a sorokkal, amelyeknek nincs párja a másik oldalon.
Egy JOIN két tábla sorait egyesíti egy feltétel — általában egy idegen kulcs — illesztésével. A join típusa dönti el, mi történik azokkal a sorokkal, amelyeknek nincs párja a másik oldalon.
NULL-ként jönnek vissza.-- customers(id, name) orders(id, customer_id, total)
-- INNER: csak azok az ügyfelek, akiknek van legalább egy rendelése
SELECT c.name, o.total
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id;
-- LEFT: minden ügyfél, még azok is, akiknek nulla rendelése van (total = NULL)
SELECT c.name, o.total
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id;
-- Klasszikus felhasználás: rendelés NÉLKÜLI ügyfelek keresése
SELECT c.name
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id
WHERE o.id IS NULL; -- a LEFT JOIN NULL oldala felfedi a hiányt
WHERE-ben (pl. WHERE o.total > 100) csendben visszaalakítja a LEFT JOIN-t INNER JOIN-ná, mert a NULL > 100 hamis. Az ilyen feltételeket az ON záradékba tedd, ha meg akarod tartani a párosítatlan sorokat.A legtöbb valós lekérdezés több táblát fog át, és a rossz join típus csendben elejt vagy megduplázza a sorokat — egy hiba, amely hihető eredményeket ad vissza. Annak ismerete, hogy a LEFT JOIN + IS NULL megtalálja a "hiányzó" sorokat, és hogy egy WHERE a null oldalon kioltja a LEFT-et, a jelentéskészítési hibák egész osztályát megelőzi.
IT interjúkérdések gyűjteménye részletes válaszokkal — Juniortól Seniorig.
Adományozás