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).