Sobes.tech
Junior

INNER JOIN va OUTER JOIN qanday farq qiladi?

sobes.tech AI

AIdan javob

INNER JOIN faqat birikish shartiga muvofiq ikkala jadvalda ham mos keladigan satrlarni qaytaradi. Agar jadvaldan birida mos yozuv bo'lmasa, bu satr natijaga kirmaydi.

OUTER JOIN bir jadvaldagi barcha satrlarni va ikkinchisidan mos keladiganlarni qaytaradi, va mos kelmaslik holatida, bo'sh joylar NULL bilan to'ldiriladi. Uch turdagi OUTER JOIN mavjud:

  • LEFT OUTER JOIN — chap jadvaldagi barcha satrlar + o'ngdagi mos keladiganlar;
  • RIGHT OUTER JOIN — o'ng jadvaldagi barcha satrlar + chapdagi mos keladiganlar;
  • FULL OUTER JOIN — ikkala jadvaldagi barcha satrlar, mos kelmaslikda NULL.

Misol:

SELECT * FROM employees INNER JOIN departments ON employees.dept_id = departments.id;
-- faqat bo'limi bo'lgan xodimlarni qaytaradi

SELECT * FROM employees LEFT OUTER JOIN departments ON employees.dept_id = departments.id;
-- barcha xodimlarni, hatto bo'limi bo'lmaganlar ham (departments ustunlarida NULL bo'ladi)