Sobes.tech
Junior

SQLде LEFT JOIN жана RIGHT JOIN ортосунда кандай айырмачылык бар?

sobes.tech AI

AIден жооп

LEFT JOIN сол тарап (биринчи) таблицадан бардык саптарды жана оң (экинчи) таблицадан тиешелүү саптарды кайтарат. Эгер оң таблицада шайкештиктер жок болсо, натыйжа оң таблицадан колонкалар үчүн NULL камтыйт.

RIGHT JOIN сол (биринчи) таблицадан бардык саптарды жана оң (экинчи) таблицадан тиешелүү саптарды кайтарат. Эгер сол таблицада шайкештиктер жок болсо, натыйжа сол таблицадан колонкалар үчүн NULL камтыйт.

Негизги айырма кайсы таблица "толук" деп саналат, башкача айтканда, кайсы таблиадан бардык саптар кайтарылат, шайкештиктер болобу же жокпу.

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 менен бирдей.