Easyjoin

Чем INNER JOIN от LEFT JOIN отличается?

1Постановка

Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.

2Решение

INNER JOIN оставляет только строки, у которых есть совпадение в обеих таблицах. LEFT JOIN оставляет все строки левой таблицы, а при отсутствии совпадения ставит NULL в колонках правой.

-- Только пользователи с заказами
SELECT u.name, o.total
FROM users u
INNER JOIN orders o ON u.id = o.user_id;

-- Все пользователи (o.total = NULL, если заказов нет)
SELECT u.name, o.total
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;

Прочие виды: RIGHT JOIN — зеркально LEFT; FULL OUTER JOIN — все из обеих; CROSS JOIN — декартово произведение (M×N); self-join — таблица сама с собой через alias.

3Как отвечать

  • Сначала уточните условия и ограничения, покажите аналитическое мышление.
  • Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
  • Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡

На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.