Junior
Фарқи байни INNER JOIN ва OUTER JOIN чист?
sobes.tech AI
Ҷавоб аз AI
INNER JOIN танҳо он сатрҳоро бармегардонад, ки мувофиқатҳо дар ҳарду ҷадвал мувофиқи шарти пайвастшавӣ доранд. Агар дар яке аз ҷадвалҳо сабтҳои мувофиқ набошад, он сатр дар натиҷа намоиш дода намешавад.
OUTER JOIN ҳамаи сатрҳоро аз як ҷадвал ва мувофиқҳоро аз дигар меорад, ва агар мувофиқатҳо набошад, дар ҷойҳои норасоӣ маълумотҳо NULL хоҳанд буд. Се навъи OUTER JOIN вуҷуд дорад:
- LEFT OUTER JOIN — ҳамаи сатрҳо аз ҷадвали чап + мувофиқҳо аз рост;
- RIGHT OUTER JOIN — ҳамаи сатрҳо аз ҷадвали рост + мувофиқҳо аз чап;
- FULL OUTER JOIN — ҳамаи сатрҳо аз ҳарду ҷадвал, ки мувофиқат намекунанд, NULL.
Масалан:
SELECT * FROM employees INNER JOIN departments ON employees.dept_id = departments.id;
-- танҳо кормандонеро бармегардонад, ки шӯъба доранд
SELECT * FROM employees LEFT OUTER JOIN departments ON employees.dept_id = departments.id;
-- ҳамаи кормандонро бармегардонад, ҳатто агар шӯъба надошта бошанд (дар сутунҳои departments NULL хоҳад буд)