Sobes.tech
Junior — Middle

Можете ли да обясните разликите между вътрешно свързване и лево свързване в SQL?

sobes.tech AI

Отговор от AI

Вътрешно свързване (INNER JOIN) връща само редовете, които имат съвпадения и в двете таблици според условието за свързване. Ако в една от таблиците няма съответстващ запис, такъв ред няма да бъде включен в резултата.

Ляво свързване (LEFT JOIN) връща всички редове от лявата таблица и съответстващите редове от дясната таблица. Ако няма съвпадение, стойностите от дясната таблица ще бъдат NULL.

Пример:

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

Ще върне само клиентите, които имат поръчки.

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

Ще върне всички клиенти, включително тези без поръчки (в този случай order_id ще бъде NULL).