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)