JOIN inaunganisha rows kutoka majedwali mawili kwa kulinganisha sharti, kwa kawaida foreign key. Type ya join huamua nini kinatokea kwa rows ambazo hazina linganifu upande wa pili.
JOIN inaunganisha rows kutoka majedwali mawili kwa kulinganisha sharti, kwa kawaida foreign key. Type ya join huamua nini kinatokea kwa rows ambazo hazina linganifu upande wa pili.
NULL.-- customers(id, name) orders(id, customer_id, total)
-- INNER: only customers who have at least one order
SELECT c.name, o.total
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id;
-- LEFT: every customer, even those with zero orders (total = NULL)
SELECT c.name, o.total
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id;
-- Classic use: find customers with NO orders
SELECT c.name
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id
WHERE o.id IS NULL; -- the LEFT JOIN's NULL side reveals the gap
WHERE (mfano WHERE o.total > 100) kimyakimya hurudisha LEFT JOIN kuwa INNER JOIN, kwa sababu NULL > 100 ni false. Weka masharti kama hayo katika ON clause ikiwa unataka kuweka rows zisizolingana.Queries nyingi halisi hugusa majedwali mengi, na type ya join isiyo sahihi kimyakimya huondoa au hurudufu rows — bug inayorudisha matokeo yanayoonekana ya kweli. Kujua kwamba LEFT JOIN + IS NULL hupata rows "zinazokosekana", na kwamba WHERE upande wa null hufuta LEFT, huzuia kundi zima la makosa ya ripoti.
Maktaba ya maswali ya mahojiano ya IT yenye majibu ya kina — kutoka Junior hadi Senior.
Changia