Sobes.tech
Junior

Ի՞նչ տարբերություններ կան LEFT JOIN և RIGHT JOIN-ի միջև SQL-ում։

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 менен.