Junior — Middle
Обяснете разликата между INNER JOIN и OUTER JOIN в SQL и в кои ситуации се използва всеки от тях.
sobes.tech AI
Отговор от AI
INNER JOIN връща само редовете, които имат съвпадения и в двете таблици според условието за свързване.
OUTER JOIN връща всички редове от една таблица и съответните редове от другата. Ако няма съвпадения, местата без данни ще бъдат NULL.
Видове OUTER JOIN:
- LEFT OUTER JOIN — всички редове от лявата таблица + съвпадащите от дясната.
- RIGHT OUTER JOIN — всички редове от дясната таблица + съвпадащите от лявата.
- FULL OUTER JOIN — всички редове и от двете таблици, с NULL там, където няма съвпадения.
Пример за използване:
- INNER JOIN — когато са нужни само свързани данни, например поръчки с съществуващи клиенти.
- LEFT OUTER JOIN — когато искаме да получим всички клиенти, включително тези без поръчки.
Пример SQL:
SELECT customers.name, orders.id
FROM customers
LEFT JOIN orders ON customers.id = orders.customer_id;
Този заявка ще върне всички клиенти и техните поръчки, ако има, иначе NULL за поръчките.