Все строки слева и совпавшие справа сохраняет LEFT JOIN. Только совпавшие пары возвращает INNER JOIN, однако отсутствие NULL в результате само по себе не определяет вид соединения.
Какой JOIN применяется, если видны все строки левой таблицы и только совпавшие строки правой? Какой JOIN применяется, если NULL-значения отсутствуют и остаются только совпавшие строки?
Все строки слева и совпавшие справа сохраняет LEFT JOIN. Только совпавшие пары возвращает INNER JOIN, однако отсутствие NULL в результате само по себе не определяет вид соединения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Все строки слева и совпавшие справа сохраняет LEFT JOIN. Только совпавшие пары возвращает INNER JOIN, однако отсутствие NULL в результате само по себе не определяет вид соединения.
При LEFT JOIN для строки без пары правые поля заполняются NULL. Но исходные столбцы совпавших строк тоже могут содержать NULL — в том числе при INNER JOIN. И наоборот, LEFT JOIN может не дать дополнительных NULL, если все строки нашли пары. Определяйте операцию по правилу включения строк, а не только по внешнему виду конкретного результата.