Sobes.tech
Junior — Middle

Фарқи байни амалҳои CROSS JOIN ва FULL OUTER JOIN дар SQL чист ва дар кадом ҳолатҳо ҳар яке истифода мешавад?

sobes.tech AI

Ҷавоб аз AI

CROSS JOIN ва FULL OUTER JOIN — ин ду навъи пайвастшавии ҷадвалҳо дар SQL бо мақсадҳои гуногун:

  • CROSS JOIN — маҳсулоти картезиани ду ҷадвал аст. Ҳар сатр аз ҷадвали аввал бо ҳар сатр аз ҷадвали дуввум пайваст мешавад. Вақте ки мехоҳед ҳамаи имкониятҳои пайвастшавии сатрҳоро ба даст оред.

    Мисол:

    SELECT * FROM A CROSS JOIN B;
    

    Агар дар A 3 сатр ва дар B 2 бошад, натиҷа 6 сатр хоҳад буд.

  • FULL OUTER JOIN — сатрҳоро аз ҳар ду ҷадвал пайваст мекунад, аз ҷумла ҳамаи сатрҳоро, ҳатто агар дар ҷадвали дигар мувофиқат набошад. Дар ҷойҳое, ки мувофиқат нест, майдонҳои ҷадвали дигар бо NULL пур карда мешаванд.

    Вақте ки мехоҳед ҳамаи маълумотҳоро аз ҳар ду ҷадвал ба даст оред, бо нигоҳ доштани маълумот дар бораи сатрҳои номувофиқ.

    Мисол:

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

Вақте истифода бурдан:

  • CROSS JOIN — барои тавлиди ҳамаи ҷуфтҳои имконпазир, масалан, дар сохтани тақвимҳо ё комбинацияҳо.
  • FULL OUTER JOIN — вақте ки мехоҳед маълумотҳоро аз ду ҷадвал пайваст кунед ва ҳамаи сабтҳоро нигоҳ доред, ҳатто агар мувофиқат набошад.

Ин тариқ, CROSS JOIN шумораи сатрҳоро зиёд мекунад, дар ҳоле ки FULL OUTER JOIN маълумотҳоро пайваст мекунад ва ҳамаи сабтҳоро нигоҳ медорад.