INNER оставляет совпавшие пары, LEFT и RIGHT дополнительно сохраняют несовпавшие строки соответствующей стороны, FULL — обеих сторон. CROSS строит все сочетания строк.
Сравнительный анализ всех вариантов SQL JOIN на двух таблицах
INNER оставляет совпавшие пары, LEFT и RIGHT дополнительно сохраняют несовпавшие строки соответствующей стороны, FULL — обеих сторон. CROSS строит все сочетания строк.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Даны две таблицы — T1 и T2. Необходимо выполнить их объединение, используя каждый из известных типов JOIN (INNER, LEFT, RIGHT, FULL, CROSS и др.), и описать, какие строки будут присутствовать в результате каждого запроса.
Ответ
INNER оставляет совпавшие пары, LEFT и RIGHT дополнительно сохраняют несовпавшие строки соответствующей стороны, FULL — обеих сторон. CROSS строит все сочетания строк.
При условии T1.id = T2.id каждому совпадению соответствует отдельная пара: дубликаты ключей перемножаются. Несовпавшая сторона внешнего JOIN заполняется NULL; NULL = NULL не даёт совпадения. CROSS возвращает |T1| × |T2| строк. Для проверки существования используют EXISTS, для отсутствия — NOT EXISTS; self join означает соединение таблицы с собой, а не отдельную семантику совпадения. Конкретные строки и количества без данных T1/T2 определить нельзя. Условие в WHERE после LEFT JOIN может убрать строки с NULL.