Для данного SQL нет особой причины использовать левое соединение, так как ваше предложение where не будет совпадать ни с одной строкой, где нет соответствующего проекта.Вы можете получить результаты с помощью:
result = store.find(Plan, Plan.id == Project.plan_id, Project.project_id == "alpha")
Это даст вам объект ResultSet.С учетом вашей схемы, похоже, что вы ожидаете одну строку, поэтому вы можете получить к ней доступ с помощью:
plan = result.one()
или связать их вместе с помощью:
plan = store.find(Plan, Plan.id == Project.plan_id, Project.project_id == "alpha").one()
нужно сделать левое соединение, синтаксис для этого будет что-то вроде этого:
result = store.using(LeftJoin(Plan, Project, Plan.id == Project.plan_id)).find(
Plan, Project.project_id == "alpha")