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)