Sobes.tech
Senior

Խոսեք SQL-ում JOIN տեսակների մասին և բացատրեք նրանց միջև տարբերությունը։

sobes.tech AI

Պատասխան AI-ից

SQL-да, бир нече JOIN түрлери бар, ки маълумотларни икки ёки ундан ортиқ жадваллардан муайян шарт асосида бирлаштиришга имкон беради.

Асосий JOIN турлари:

  • INNER JOIN — фақат икки жадвалда ҳам мос келадиган рекордларни қайтариб беради.
  • LEFT JOIN (LEFT OUTER JOIN) — сол қўйилган жадвалдан барча рекордлар ва ўнгдаги мос келадиганлар; мос келмаса, ўнг жадвалнинг майдонлари NULL бўлади.
  • RIGHT JOIN (RIGHT OUTER JOIN) — LEFT JOIN каби, аммо ўнг жадвалдан барча рекордлар қайтарилади.
  • FULL JOIN (FULL OUTER JOIN) — икки жадвалдан ҳам барча рекордлар, мос келмаса, NULL бўлади.

Уларнинг фарқи, мос келмайдиган рекордлар қайси жадвалда сақланади:

  • INNER JOIN мос келмайдиган рекордларни чиқаради.
  • LEFT JOIN сол жадвалдан барча рекордларни сақлайди.
  • RIGHT JOIN ўнг жадвалдан барча рекордларни сақлайди.
  • FULL JOIN икки жадвалдан ҳам барча рекордларни сақлайди.

Масалан:

SELECT * FROM A
INNER JOIN B ON A.id = B.a_id;

SELECT * FROM A
LEFT JOIN B ON A.id = B.a_id;

SELECT * FROM A
RIGHT JOIN B ON A.id = B.a_id;

SELECT * FROM A
FULL JOIN B ON A.id = B.a_id;

Goда, маълумотлар базаси билан ишлашда SQL сўровлари ёки ORM орқали, қайси JOIN-ни қўллаш кераклигини тушуниш муҳим, шунингдек, сўровларни оптималлаштириш учун.