Junior — Middle
Тавзеҳ диҳед фарқият байни пайвасти дохилӣ ва пайвасти хориҷӣ дар SQL.
sobes.tech AI
Ҷавоб аз AI
Дар SQL, пайвастаги дохилӣ (INNER JOIN) ва хориҷӣ (OUTER JOIN) барои пайваст кардани сатрҳо аз ду ҷадвал истифода мешаванд, аммо дар интихоби сатрҳо фарқ мекунанд:
-
Пайвасти дохилӣ (INNER JOIN) танҳо он сатрҳоро бармегардонад, ки дар ҳарду ҷадвал мувофиқат доранд, мувофиқи шарти пайваст.
-
Пайвасти хориҷӣ (OUTER JOIN) ҳамаи сатрҳоро аз як ҷадвал ва сатрҳои мувофиқ аз ҷадвали дигар бармегардонад. Агар мувофиқат набошад, ҷойҳои бе маълумот NULL хоҳанд буд.
Три навъи пайвастҳои хориҷӣ вуҷуд доранд:
- LEFT OUTER JOIN — ҳамаи сатрҳо аз ҷадвали чап + мувофиқҳо аз ҷадвали рост
- RIGHT OUTER JOIN — ҳамаи сатрҳо аз ҷадвали рост + мувофиқҳо аз ҷадвали чап
- FULL OUTER JOIN — ҳамаи сатрҳо аз ҳарду ҷадвал, бо NULL дар ҷойҳое, ки мувофиқат нест
Масалан:
SELECT * FROM users INNER JOIN orders ON users.id = orders.user_id;
-- Танҳо корбарон бо фармоишҳоро бармегардонад
SELECT * FROM users LEFT JOIN orders ON users.id = orders.user_id;
-- Ҳама корбаронро бармегардонад, ҳатто агар фармоиш надошта бошанд (orders NULL хоҳад буд)