Sobes.tech
Junior — Middle

Vai jūs varat izskaidrot atšķirības starp iekšējo savienojumu un kreiso savienojumu SQL?

sobes.tech AI

Atbilde no AI

Iekšējā apvienošana (INNER JOIN) atgriež tikai tās rindas, kurās ir atbilstība abās tabulās saskaņā ar apvienošanas nosacījumu. Ja vienā no tabulām nav atbilstoša ieraksta, šāda rinda netiks iekļauta rezultātā.

Kreisā apvienošana (LEFT JOIN) atgriež visas kreisās tabulas rindas un atbilstošās labās tabulas rindas. Ja atbilstība nav, labās tabulas vērtības būs NULL.

Piemērs:

SELECT a.id, a.name, b.order_id
FROM customers a
INNER JOIN orders b ON a.id = b.customer_id;

Atgriezīs tikai klientus ar pasūtījumiem.

SELECT a.id, a.name, b.order_id
FROM customers a
LEFT JOIN orders b ON a.id = b.customer_id;

Atgriezīs visus klientus, ieskaitot tos bez pasūtījumiem (šajā gadījumā order_id būs NULL).