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-ни қўллаш кераклигини тушуниш муҳим, шунингдек, сўровларни оптималлаштириш учун.