Cashar 3

JOINs: Isku Xidh Miisaska

Baro sida JOIN loogu isticmaalo isku xidka miisaska badan — xogta dhabta ah ee dunidu ku shaqeyso.

JOINs — Wadashaqeynta Miisaska

Database-yada dhabta ah waxay leeyihiin miisas badan oo xidid isku xidhan. JOIN-ku wuxuu kuu ogolaanayaa inaad xogaha miisaskaas ku dareyso codsigaaga.

Sababta JOINs loo baahan yahay

Tani waa nidaamka faa’iidada leh — halkii laga geliyay dhammaan xogta hal miis:

Miiska: dalabka
| id | isticmaale_id | alaab_id | xad | taariikh  |
|----|---------------|----------|-----|-----------|
| 1  | 42            | 7        | 3   | 2024-03-01|
| 2  | 15            | 2        | 1   | 2024-03-02|

Miiska: isticmaalayaasha
| id | magaca      | email             |
|----|-------------|-------------------|
| 42 | Axmed Cumar | axmed@example.com |
| 15 | Fadumo Ali  | fadumo@example.com|

Miiska: alaabta
| id | magaca   | qiimaha |
|----|----------|---------|
| 7  | Laptop   | 899.99  |
| 2  | Telefoon | 299.99  |

Xogta saddexda miisba waxaan ku wehel weesha hal JOIN.

INNER JOIN — Kuwa labadaba ku jira

INNER JOIN (ama JOIN oo keliya) wuxuu soo celinayaa safaf oo keliya miisaska labadaba ku jira qiime la mid ah.

-- Hel dalabka iyo magacyada isticmaalayaasha
SELECT
  dalabka.id        AS dalabka_id,
  isticmaalayaasha.magaca,
  isticmaalayaasha.email,
  dalabka.xad,
  dalabka.taariikh
FROM dalabka
INNER JOIN isticmaalayaasha
  ON dalabka.isticmaale_id = isticmaalayaasha.id;

Natiijada:

| dalabka_id | magaca      | email              | xad | taariikh   |
|-----------|-------------|---------------------|-----|------------|
| 1         | Axmed Cumar | axmed@example.com   | 3   | 2024-03-01 |
| 2         | Fadumo Ali  | fadumo@example.com  | 1   | 2024-03-02 |

Magacyada Gaagaaban (Aliases)

Qoraalka dhaadheer waxaa laga gaabiyaa AS isticmaalka:

SELECT
  d.id,
  i.magaca,
  a.magaca  AS alaab_magaca,
  d.xad,
  (d.xad * a.qiimaha) AS wadarta
FROM dalabka      AS d
JOIN isticmaalayaasha AS i ON d.isticmaale_id = i.id
JOIN alaabta      AS a ON d.alaab_id = a.id
ORDER BY d.taariikh DESC;

LEFT JOIN — Dhammaan Miiska Bidixda

LEFT JOIN wuxuu soo celinayaa dhammaan safaf miiska bidixda, xitaa kuwa aan miiska midigta u lahayn mid u dhigma.

-- Hel dhammaan isticmaalayaasha, hadday dalabka lahaystaan ama kale
SELECT
  i.magaca,
  i.email,
  COUNT(d.id) AS tirada_dalabka
FROM isticmaalayaasha AS i
LEFT JOIN dalabka AS d ON i.id = d.isticmaale_id
GROUP BY i.id, i.magaca, i.email
ORDER BY tirada_dalabka DESC;

Isticmaalayaasha aan wax dalabna lahayn waxay heli doonaan 0 tirada dalabka — mana ka baxi doonaan natiijooyinka.

Kala soocista: INNER JOIN = labadaba isku xidkaan laha. LEFT JOIN = dhammaan kuwa bidixda + kuwa la mid ah ee midigta.

Saddex Miis isku xidka

-- Warbixin buuxda: isticmaale + dalabka + magaca alaabta
SELECT
  i.magaca          AS macmiil,
  a.magaca          AS alaab,
  d.xad,
  a.qiimaha,
  (d.xad * a.qiimaha) AS wadarta,
  d.taariikh
FROM dalabka AS d
JOIN isticmaalayaasha AS i ON d.isticmaale_id = i.id
JOIN alaabta          AS a ON d.alaab_id      = a.id
WHERE d.taariikh >= '2024-01-01'
ORDER BY d.taariikh DESC
LIMIT 50;

Qaababka JOIN-ka Kale

-- RIGHT JOIN: dhammaan kuwa midigta (isticmaalka yar)
SELECT * FROM alaabta AS a
RIGHT JOIN dalabka AS d ON a.id = d.alaab_id;

-- FULL OUTER JOIN: labada miis oo dhan (PostgreSQL)
SELECT * FROM A FULL OUTER JOIN B ON A.id = B.a_id;

-- CROSS JOIN: dhammaan isku dararka suurtagalka ah (isticmaalka yar)
SELECT * FROM midab CROSS JOIN baaxad;
-- Haddii midab = 3, baaxad = 4 → 12 safo

Farsamada Wanaagsan

  1. Geli magaca miiska tiirarka marka JOINs aad isticmaalayso: i.magaca halkii magaca oo keliya
  2. Isticmaal aliases (AS d) koodhka si fudud loo akhriyo
  3. JOIN-ka hore ah INDEX-ka column-ka JOIN-ka loogu isticmaalo (DBA-daagu taasi wey garanayaan)
  4. Ka hor inaad isticmaasho SELECT *, gaar ahaan JOINs - tiirarka badan oo isku magac ah waxay dhibi kartaan

Xirfad Dhaqameed

Warbixinta Dalabka

Haysataa saddex miis: `macaamiilka` (id, magaca, magaalada), `dalabka` (id, macmiil_id, taariikh, wadarta), `xaaladda_dalabka` (dalabka_id, xaaladda). Qor query soo keenaysa dalabka oo dhan leh: magaca macmiilka, magaalada, wadarta, iyo xaaladda. Kala sooc wadarta hoos-u-dhac.

Knowledge Check

JOINS Review

0/1 la jawaabay

Su’aashan waxay xoojinaysaa fikradda isku xirka miisas badan.

1JOIN waxaa loo adeegsadaa:

Billow Maanta

Diyaar ma u tahay inaad
noqoto khabiir?

Ku biir 1,200+ arday ah oo ku baranaya koodka si dhakhso ah — bilaash, adigoo raacaya xawaarahaaga.