Sobes.tech
Junior

Фарқиятҳои байни LEFT JOIN ва RIGHT JOIN дар SQL чист?

sobes.tech AI

Ҷавоб аз AI

LEFT JOIN қайтариб оши ҳар бир сатрдан (биринчи) таблицадан ва мувофиқ келадиган сатрлар (иккинчи) таблицадан. Агар ўнгдаги таблицада мувофиқ келадиганлар бўлмаса, натижа ўнгдаги таблицадан устунлар учун NULL бўлади.

RIGHT JOIN қайтариб оши ҳар бир сатрдан (иккинчи) таблицадан ва мувофиқ келадиган сатрлар (биринчи) таблицадан. Агар чапдаги таблицада мувофиқ келадиганлар бўлмаса, натижа чапдаги таблицадан устунлар учун NULL бўлади.

Асосий фарқ қайси таблица "to‘liq" ҳисобланади, яъни қайси таблидан барча сатрлар қайтарилади, яъни уларда мувофиқ келадиганлар бўлмаса ҳам.

SQLда мисол:

Жадвал ЖадвалA:

ID ҚимматA
1 A1
2 A2
3 A3

Жадвал ЖадвалB:

ID ҚимматB
2 B2
3 B3
4 B4

LEFT JOIN:

SELECT *
FROM ЖадвалA
LEFT JOIN ЖадвалB ON ЖадвалA.ID = ЖадвалB.ID;

Натижа:

ID (ЖадвалAдан) ҚимматA ID (ЖадвалBдан) ҚимматB
1 A1 NULL NULL
2 A2 2 B2
3 A3 3 B3

RIGHT JOIN:

SELECT *
FROM ЖадвалA
RIGHT JOIN ЖадвалB ON ЖадвалA.ID = ЖадвалB.ID;

Натижа:

ID (ЖадвалAдан) ҚимматA ID (ЖадвалBдан) ҚимматB
2 A2 2 B2
3 A3 3 B3
NULL NULL 4 B4

LEFT JOIN ва RIGHT JOIN кўпинча бир-бирининг ўрнини алмаштириш мумкин, сўровда жадваллар тартибини ўзгартириш орқали: A LEFT JOIN B B RIGHT JOIN A билан тенгдир.