Sobes.tech
Senior

Кои видове 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 зависи от това какви данни искате да получите и как да обработите липсващите съвпадения.