Вопрос:
когда лучше использовать те или иные способы соединения таблиц?
Как часто спрашивают: Постоянно
Кто предложил: ALittleMoron
Ответ:
В большинстве случаев используются INNER JOIN. Он чаще всего используется, потому что зачастую нужно объединить таблицы с полным пересечением для более строгого ответа без незаполненных полей. Чуть реже встречаются LEFT/RIGHT JOIN. Когда уже не совсем важно именно пересечение, нужно получить все основные записи в нужной основной таблице с дополнительным контекстом в виде записей из второй таблицы. В зависимости от того, где находится основная таблица - слева или справа, от этого мы выбираем LEFT или RIGHT JOIN, но обычно происходит выбор LEFT JOIN, потому что чаще первой идет основная таблица, которая непосредственно важна нам для результата. Нам проще читать слева направо, поэтому слева идет основная таблица, а от этого и выбирается чаще LEFT JOIN. Оставшиеся JOIN по типу FULL JOIN, CROSS JOIN и так далее, используются уже сильно реже и требуются уже для каких-то очень специфических сценариев, поэтому о них можно и не говорить.
Объяснение ответа на собеседовании:
На собеседование интервьюер хочет понять, насколько глубоко человек понимает типа соединений таблиц, и может ли человек применять эти навыки уже там, где это нужно. Этот вопрос не требует очень глубокого понимания, как под капотом работают JOIN, этот вопрос не требует от вас, чтобы вы знали все JOIN, которые только есть вообще в принципе в базах данных, главное - это понимание того, чем отличаются основные JOIN, по типу INNER/LEFT/RIGHT. Иногда уточняют этот вопрос, спрашивая, чем LEFT OUTER JOIN отличается от LEFT JOIN, но это уже вопрос с подвохом. Если интервьюер не спрашивают у вас по поводу оставшихся JOIN, то и нет смысла на них тратить время.