Sobes.tech
Junior — Middle

Каква е разликата между операторите CROSS JOIN и INNER JOIN при обединяване на таблици в SQL?

sobes.tech AI

Отговор от AI

CROSS JOIN и INNER JOIN са различни типове съединения на таблици в SQL:

  • CROSS JOIN (декартово произведение): връща всички възможни комбинации от редове и двете таблици. Ако в първата таблица има N реда, а във втората M, резултатът ще съдържа N×M реда. Използва се рядко, когато трябва да се получат всички двойки.

  • INNER JOIN: връща само редовете, които имат съвпадения според условието за съединяване (обикновено по ключ). Ако редовете не съвпадат, те не се включват в резултата.

Пример:

-- Таблица A
id | име
---|-----
1  | Alice
2  | Bob

-- Таблица B
id | град
---|-----
1  | NY
3  | LA

-- CROSS JOIN
SELECT * FROM A CROSS JOIN B;
-- Резултат: 2 реда от A × 2 реда от B = 4 реда

-- INNER JOIN
SELECT * FROM A INNER JOIN B ON A.id = B.id;
-- Резултат: само редовете с id=1, защото само те съвпадат