Логические JOIN определяют, какие пары и несопоставленные строки попадают в результат: INNER, LEFT, RIGHT, FULL и CROSS. Это не физические алгоритмы hash, merge или nested loop.
Какие виды JOIN бывают в SQL (логические), чем они отличаются друг от друга?
Логические JOIN определяют, какие пары и несопоставленные строки попадают в результат: INNER, LEFT, RIGHT, FULL и CROSS. Это не физические алгоритмы hash, merge или nested loop.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Логические JOIN определяют, какие пары и несопоставленные строки попадают в результат: INNER, LEFT, RIGHT, FULL и CROSS. Это не физические алгоритмы hash, merge или nested loop.
INNER сохраняет совпадения, LEFT/RIGHT — ещё и все строки выбранной стороны, FULL — обеих сторон. CROSS создаёт все пары. Self join — применение соединения таблицы с самой собой, а не отдельный алгоритм.
Semi join оставляет строки с существующим совпадением, anti join — без него; часто их выражают через EXISTS/NOT EXISTS. Дубликаты и NULL требуют внимания: обычное равенство не считает два NULL совпавшими.