Встречается на собеседованиях • сегодня

Как сделать JOIN в SQLAlchemy

В SQLAlchemy можно выполнять JOIN несколькими способами, в зависимости от того, используете ли вы Core или ORM.

ORM-подход (рекомендуется):

python
from sqlalchemy.orm import joinedload

# Простой JOIN с явным указанием связи
result = session.query(User).join(User.addresses).filter(Address.email.like('%gmail%')).all()

Жадная загрузка (eager loading)

result = session.query(User).options(joinedload(User.addresses)).all()

text

**Core-подход:**
```python
from sqlalchemy import select

stmt = select([users, addresses]).where(users.c.id == addresses.c.user_id)
result = conn.execute(stmt).fetchall()

Варианты JOIN:

  • join() - внутреннее соединение (INNER JOIN)
  • outerjoin() - внешнее соединение (LEFT OUTER JOIN)
  • select_from() + join() - для сложных случаев соединения

Для ORM можно указывать связи через атрибуты отношений, для Core - через столбцы таблиц. SQLAlchemy автоматически определит условие соединения, если между моделями установлены отношения.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы