Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Postgres: sql, join, foreign key

Можно ли делать JOIN без внешнего ключа между таблицами?

Проверяет знание работы оператора JOIN в SQL.

Короткий ответ

Да, JOIN работает без внешних ключей — он соединяет таблицы по любым условиям (например, ON table1.field = table2.field). Внешний ключ лишь гарантирует целостность данных.

Длинный ответ

  1. Как работает JOIN:

    • Соединяет строки таблиц, где выполняется условие в ON.

    • Внешний ключ (FOREIGN KEY) не требуется, но помогает избежать "мусорных" данных.

  2. Пример без внешнего ключа:

    SELECT users.name, orders.product
    FROM users
    JOIN orders ON users.id = orders.user_id  -- user_id НЕ обязан быть FOREIGN KEY
  3. Когда внешний ключ полезен:

    • Запрещает удалять записи, на которые есть ссылки.

    • Оптимизирует запросы (например, индексы).

Вывод:
JOIN — это операция на уровне запроса, а внешний ключ — на уровне структуры БД.

Уровень

  • Рейтинг:

    1

  • Сложность:

    6

Навыки

  • Postgres

    Postgres

Ключевые слова

#sql

#join

#foreign key

Подпишись на Python Developer в телеграм