Sobes.tech
Junior — Middle
112

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

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

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, т.к. только они совпадают