НовоеAI-конструктор резюме: правишь прямо на листе A4, а нейросеть подсказывает, что усилитьКонструктор резюме на листе A4Попробовать
JobPath
Начать бесплатно

Аналитика и менеджментSeniorТехнический

Какие виды JOIN существуют в SQL и чем отличаются left join, right join и inner join

Спрашивали 4 раза

  • Т1
  • Абсолют страхование

Ответ

Что хотят услышать интервьюеры

Интервьюеры ожидают от кандидата понимания различных видов JOIN в SQL, их применения и отличий. Важно продемонстрировать уверенность в использовании JOIN для объединения таблиц, а также знание, как каждое из этих соединений влияет на получаемый результат. Также полезно упомянуть о случаях, когда может быть целесообразно использовать тот или иной тип JOIN.

Типы JOIN в SQL

  1. INNER JOIN

    • Определение: Возвращает только те записи, которые имеют соответствие в обеих таблицах.
    • Пример: Если у нас есть таблицы customers и orders, то INNER JOIN вернет только тех клиентов, у которых есть заказы.
    • Синтаксис:
      SELECT customers.name, orders.amount
      FROM customers
      INNER JOIN orders ON customers.id = orders.customer_id;
  2. LEFT JOIN (или LEFT OUTER JOIN)

    • Определение: Возвращает все записи из левой таблицы и соответствующие записи из правой таблицы. Если соответствий нет, то поля из правой таблицы будут заполнены NULL.
    • Пример: Если мы используем LEFT JOIN между customers и orders, то мы получим всех клиентов, даже если у них нет заказов.
    • Синтаксис:
      SELECT customers.name, orders.amount
      FROM customers
      LEFT JOIN orders ON customers.id = orders.customer_id;
  3. RIGHT JOIN (или RIGHT OUTER JOIN)

    • Определение: Возвращает все записи из правой таблицы и соответствующие записи из левой таблицы. Если соответствий нет, то поля из левой таблицы будут заполнены NULL.
    • Пример: Используя RIGHT JOIN между customers и orders, мы получим все заказы, даже если они не связаны с клиентами.
    • Синтаксис:
      SELECT customers.name, orders.amount
      FROM customers
      RIGHT JOIN orders ON customers.id = orders.customer_id;

Ключевые отличия

  • INNER JOIN: возвращает только совпадающие записи.
  • LEFT JOIN: возвращает все записи из левой таблицы, даже если нет совпадений в правой.
  • RIGHT JOIN: возвращает все записи из правой таблицы, даже если нет совпадений в левой.

Что могут спросить дальше

  • Привести более сложный пример с использованием нескольких JOIN.
  • Объяснить, как использовать JOIN с фильтрацией.
  • Включить объяснение работы CROSS JOIN.
  • Обсудить влияние производительности различных JOIN на большие наборы данных.
Ответ помог?
Тренироваться бесплатно

Связаться с поддержкой

Выбери, где удобнее написать