Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от AI

В SQL вътрешните (INNER JOIN) и външните (OUTER JOIN) съединения се използват за обединяване на редове от две таблици, но се различават по начина на избор на редове:

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

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

Външните съединения имат три типа:

  • LEFT OUTER JOIN — всички редове от лявата таблица + съвпадащите от дясната
  • RIGHT OUTER JOIN — всички редове от дясната таблица + съвпадащите от лявата
  • FULL OUTER JOIN — всички редове и от двете таблици, с NULL там, където няма съвпадения

Пример:

SELECT * FROM users INNER JOIN orders ON users.id = orders.user_id;
-- Ще върне само потребителите с поръчки

SELECT * FROM users LEFT JOIN orders ON users.id = orders.user_id;
-- Ще върне всички потребители, дори и да нямат поръчки (orders ще са NULL)