Junior — Middle
Ar galite paaiškinti skirtumus tarp vidinio sujungimo ir kairiojo sujungimo SQL?
sobes.tech AI
Atsakymas iš AI
Vidinis sujungimas (INNER JOIN) grąžina tik tas eilutes, kurios atitinka abiejų lentelių sujungimo sąlygą. Jei vienoje iš lentelių nėra atitinkančio įrašo, tokia eilutė nebus įtraukta į rezultatą.
Kairysis sujungimas (LEFT JOIN) grąžina visas kairės lentelės eilutes ir atitinkančias dešinės lentelės eilutes. Jei atitikimo nėra, dešinės lentelės reikšmės bus NULL.
Pavyzdys:
SELECT a.id, a.name, b.order_id
FROM customers a
INNER JOIN orders b ON a.id = b.customer_id;
Grąžins tik klientus, turinčius užsakymus.
SELECT a.id, a.name, b.order_id
FROM customers a
LEFT JOIN orders b ON a.id = b.customer_id;
Grąžins visus klientus, įskaitant tuos, kurie neturi užsakymų (šiuo atveju order_id bus NULL).