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 подскажет развёрнутый ответ в реальном времени.