Sobes.tech
Back to questions
Junior — Middle
95

Чем отличаются операторы CROSS JOIN и INNER JOIN при объединении таблиц в SQL?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

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

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

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

Пример:

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

-- Таблица B
id | city
---|-------
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, т.к. только они совпадают