SqlAlchemy объединяет ограниченный набор данных - PullRequest
0 голосов
/ 10 мая 2019

Этот поиск возвращает ~ 2000 человек.Я хочу найти всех, у кого нет прикрепленного резюме

candidates = db_session.query(Jobs).\
filter(and_(
    Jobs.interview_type == 'IN_HOUSE',
    Jobs.interview_result == 'INCLINED',
    or_(Jobs.level == '5', Jobs.level =='6'),
    Jobs.family_id == 'SDE',
)).all()

Поэтому я попытался объединиться.

Этот поиск возвращает только ~ 70 результатов.Предположительно каждый, кто имеет прикрепленное резюме.

candidates = db_session.query(Jobs).\
join(Resumes, Resumes.candidate_id == Jobs.candidate_id).\
filter(and_(
    Jobs.interview_type == 'IN_HOUSE',
    Jobs.interview_result == 'INCLINED',
    or_(Jobs.level == '5', Jobs.level =='6'),
    Jobs.family_id == 'SDE',
)).all()

Похоже, что это сокращает результаты для всех, у кого есть резюме, вместо возврата None в столбце, где резюме не существует.

Как мне написать это такЯ могу найти всех, независимо от того, есть ли у них резюме или нет?

1 Ответ

0 голосов
/ 10 мая 2019

Применить .outerjoin (вместо .join)
, считая Jobs таблицу (воспринимается как "люди") как " left ", а Resumes - как "правый"стол.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...