我想检索部门及其员工,在两个表上都使用过滤器
像这样
SELECT d.name, e.name
FROM departments d
JOIN employee e on d.id = e.department_id
WHERE d.name = "Finance" and e.name like '%m%'
这是我的 graphql 查询
{
findDepartment(name:"Finance", employee:"m") {
id
name
employees{
name
}
}
}
这是我的架构查询
class Query(graphene.ObjectType):
node = relay.Node.Field()
#filter query
find_department = graphene.List(Department, name = graphene.String(), employee = graphene.String())
def resolve_find_department(self, info, name, employee):
# like_query = '%{0}%'.format(employee)
department = db_session.query(DepartmentModel)\
.filter(DepartmentModel.name == name)
return department
我的
Department
模型是
class Department(SQLAlchemyObjectType):
class Meta:
model = DepartmentModel
interfaces = (relay.Node, )
employees = graphene.List(Employee)
def resolve_employees(name, employee):
like_query = '%{0}%'.format(employee)
print(like_query)
return db_session.query(EmployeeModel)\
.join(DepartmentModel)\
.filter(EmployeeModel.name.ilike(like_query))
我发现的问题是
employee
中的resolve_employees
参数不是我在查询中传递的值like_query
值,它将显示不属于该部门的员工谁能告诉我哪里出错了? 谢谢