Кои видове JOIN познаваш и каква е разликата между тях?
sobes.tech AI
Отговор от AI
Основните видове JOIN в SQL и техните разлики:
-
INNER JOIN — връща само записите, които имат съвпадения и в двете таблици според условието за свързване.
-
LEFT JOIN (LEFT OUTER JOIN) — връща всички записи от лявата таблица и съвпадащите от дясната. Ако няма съвпадение, полетата на дясната таблица ще бъдат NULL.
-
RIGHT JOIN (RIGHT OUTER JOIN) — връща всички записи от дясната таблица и съвпадащите от лявата.
-
FULL JOIN (FULL OUTER JOIN) — връща всички записи и от двете таблици, съвпадащи и несъвпадащи, с NULL там, където няма данни.
-
CROSS JOIN — декартово произведение на двете таблици, връща всички възможни комбинации от редове.
Пример:
-- INNER JOIN
SELECT * FROM A INNER JOIN B ON A.id = B.a_id;
-- LEFT JOIN
SELECT * FROM A LEFT JOIN B ON A.id = B.a_id;
-- RIGHT JOIN
SELECT * FROM A RIGHT JOIN B ON A.id = B.a_id;
-- FULL JOIN
SELECT * FROM A FULL JOIN B ON A.id = B.a_id;
-- CROSS JOIN
SELECT * FROM A CROSS JOIN B;
Изборът на JOIN зависи от това какви данни искате да получите и как да обработите липсващите съвпадения.