Sobes.tech
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)