INNER JOIN оставляет совпавшие пары; LEFT и RIGHT сохраняют все строки выбранной стороны; FULL — обеих сторон; CROSS JOIN создаёт декартово произведение.
А что каждый join означает?
INNER JOIN оставляет совпавшие пары; LEFT и RIGHT сохраняют все строки выбранной стороны; FULL — обеих сторон; CROSS JOIN создаёт декартово произведение.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
INNER JOIN оставляет совпавшие пары; LEFT и RIGHT сохраняют все строки выбранной стороны; FULL — обеих сторон; CROSS JOIN создаёт декартово произведение.
Для outer join отсутствующие поля другой стороны заполняются NULL. Условие ON определяет пары строк, а WHERE фильтрует уже полученный результат, поэтому перенос условия между ними может изменить смысл. Если одному ключу соответствует несколько строк, JOIN размножит результаты. Self join — не отдельная семантика соединения, а соединение таблицы с самой собой через разные aliases. Выбирают JOIN по требуемому набору строк, а не привычке.