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)