Junior — Middle
Kuo skiriasi INNER JOIN ir OUTER JOIN naudojimas SQL, jungiant lenteles?
sobes.tech AI
Atsakymas iš AI
INNER JOIN grąžina tik tas eilutes, kurios turi atitikmenis abiejose lentelėse pagal jungimo sąlygą. Jei vienoje iš lentelių nėra atitinkančio įrašo, ta eilutė nebus įtraukta į rezultatą.
OUTER JOIN (LEFT, RIGHT arba FULL) grąžina visas eilutes iš vienos arba abiejų lentelių, įskaitant tas, kurioms nėra atitikmenų. Tokiu atveju trūkstamos reikšmės užpildomos NULL.
Pavyzdys:
-- INNER JOIN: tik atitinkančios įrašus
SELECT * FROM users INNER JOIN orders ON users.id = orders.user_id;
-- LEFT OUTER JOIN: visi naudotojai, net ir tie, kurie neturi užsakymų
SELECT * FROM users LEFT JOIN orders ON users.id = orders.user_id;