4.4.6 · HinglishDatabases

Joins — INNER, LEFT, RIGHT, FULL OUTER, CROSS, SELF

2,131 words10 min readRead in English

4.4.6 · Coding › Databases


Joins exist KYU karte hain?

Hum do running tables use karenge:

Employees

emp_id name dept_id
1 Asha 10
2 Bilal 20
3 Cara NULL

Departments

dept_id dept_name
10 Sales
30 Legal

Note karo ye deliberate mismatches: emp Cara ka koi department nahi hai; dept 30 (Legal) ka koi employee nahi hai; dept 20 Employees mein hai lekin Departments mein nahi hai.


Chhe joins

Figure — Joins — INNER, LEFT, RIGHT, FULL OUTER, CROSS, SELF

HOW joins pehle principles se bante hain (Derivation)

Counting check

Hamare data ke liye: INNER mein 1 row hai. Left-unmatched = {Bilal, Cara} = 2. Right-unmatched = {Legal} = 1.


Worked examples


Common mistakes (Steel-manned)


Recall Feynman: ek 12-saal ke bacche ko samjhao

Do lists imagine karo. List A: bacche aur lunch-table number jinpe woh baithte hain. List B: table numbers aur har table pe kya khana hai. Ek join har bacche ko uske table ke khaane se match karta hai.

  • INNER: sirf wahi bacche dikhao jo kisi real food-table pe baithte hain (floor pe baitha baccha aur khaali table dono skip karo).
  • LEFT: har bacche ko dikhao — agar kisi bacche ka koi table nahi, toh "no food" likho.
  • RIGHT: har table dikhao — khaali table bhi "koi nahi hai" bolta hai.
  • FULL: har bacche AUR har table ko dikhao, jahan missing ho wahan blank rakho.
  • CROSS: maan lo har baccha har table pe baith sakta hai — saare combos list karo.
  • SELF: ek hi list use karke bacchon ko usi table ke doosre bacchon se match karo.

Active recall

INNER JOIN kaun si rows return karta hai?
Sirf wahi rows jo ON condition dono tables pe match karti hain; kisi bhi side ki unmatched rows drop ho jaati hain.
LEFT JOIN kis table ki saari rows rakhta hai, aur miss hone par kya fill karta hai?
LEFT table ki saari rows; unmatched RIGHT columns NULL ban jaati hain.
A RIGHT JOIN B ko LEFT use karke kaise rewrite karoge?
B LEFT JOIN A (same result, order swap karo).
FULL OUTER JOIN kaun se do joins ka union hai?
LEFT JOIN ∪ RIGHT JOIN.
m aur n rows ka CROSS JOIN kitni rows produce karta hai?
m × n (Cartesian product), koi ON condition nahi hoti.
Har join ko kaun si operations ke sequence se derive kiya ja sakta hai?
CROSS JOIN (Cartesian product) → ON predicate se FILTER (INNER milta hai) → unmatched outer rows ko NULL se PAD karo.
No match wali rows dhundne ka standard pattern (anti-join) kya hai?
Dusri table LEFT JOIN karo, phir WHERE IS NULL.
RIGHT table pe WHERE mein filter kyu LEFT JOIN ko INNER JOIN bana deta hai?
Padded NULL rows comparison fail kar deti hain (NULL = value true nahi hota), isliye WHERE unhe padding ke baad remove kar deta hai.
LEFT JOIN semantics preserve karne ke liye right-table conditions kis clause mein honi chahiye?
ON clause mein (padding se pehle filter karta hai), WHERE mein nahi (padding ke baad filter karta hai).
SELF JOIN kis kaam aata hai?
Table ko do aliases ke zariye khud se join karne ke liye — jaise employee→manager hierarchies ya ek hi table ke andar rows compare karna.
INNER JOIN ON e.dept_id = d.dept_id NULL dept_id wali row kyu drop kar deta hai?
NULL kisi bhi cheez se equal nahi hota (NULL se bhi nahi), isliye NULL key kisi bhi row se match nahi karti.
Self-join pairing mein a.id < b.id kyu add karte hain?
Duplicate (A,B & B,A) pairs aur self-pairs (A,A) avoid karne ke liye.

Connections

  • Relational Algebra — selection , projection , Cartesian product joins ke aadhar hain.
  • Normalization — data ko tables mein split karta hai; joins use reassemble karte hain.
  • NULL semantics in SQL — isliye unmatched outer rows us tarah behave karte hain.
  • Indexes — optimizer real kaam kaise avoid karta hai (hash join, merge join, nested loop).
  • Foreign Keys — woh relationships jinhe joins typically follow karte hain.
  • GROUP BY and Aggregation — aksar joins ke saath combine hota hai.

Concept Map

creates need for

reconnect via

core question

drop unmatched

keep all left

keep all right

keep both sides

no condition

two aliases of one table

equivalent to

pads missing with

pads missing with

used for

Normalization splits data

Joins

Key match condition

No match: keep or drop?

INNER JOIN

LEFT JOIN

RIGHT JOIN

FULL OUTER JOIN

CROSS JOIN — m x n

SELF JOIN

NULL values

Hierarchies emp to manager