Sobes.tech
Junior — Middle

Selgitage SQL-sisesises ja välise ühendamise erinevusi.

sobes.tech AI

Vastus AI-lt

SQL-is kasutatakse sisemisi (INNER JOIN) ja välimisi (OUTER JOIN) ühendusi kahe tabeli ridade ühendamiseks, kuid need erinevad ridade valiku viisis:

  • Sisemine ühendus (INNER JOIN) tagastab ainult need read, millel on vastavus mõlemas tabelis ühendustingimuse alusel.

  • Välimine ühendus (OUTER JOIN) tagastab kõik read ühest tabelist ja vastavad read teisest tabelist. Kui vastavust ei ole, on kohtades, kus andmeid pole, NULL.

Välimise ühenduse tüübid on kolm:

  • LEFT OUTER JOIN — kõik vasaku tabeli read + vastavad paremas tabelis
  • RIGHT OUTER JOIN — kõik parema tabeli read + vastavad vasakus tabelis
  • FULL OUTER JOIN — kõik mõlema tabeli read, kus vastavust pole, on NULL

Näide:

SELECT * FROM users INNER JOIN orders ON users.id = orders.user_id;
-- Tagastab ainult kasutajad, kellel on tellimused

SELECT * FROM users LEFT JOIN orders ON users.id = orders.user_id;
-- Tagastab kõik kasutajad, isegi kui neil pole tellimusi (orders on NULL)