session.query(User).join((Group, User.groups)) .join((Department, Group.departments)).filter(Department.name == 'R&D')