Python 如何在sqlalchemy中执行子选择
我想在sqlalchemy中呈现以下SQL:Python 如何在sqlalchemy中执行子选择,python,sqlalchemy,Python,Sqlalchemy,我想在sqlalchemy中呈现以下SQL: session.query(Employee.name, Employee.hired_on, Department.name, Role.name)\ .join(Department, Employee.department_id==Department.id)\ .join(Role, Employee.role_id==
session.query(Employee.name,
Employee.hired_on,
Department.name,
Role.name)\
.join(Department,
Employee.department_id==Department.id)\
.join(Role,
Employee.role_id==Role.role_id)\
.all()
选择
名称
雇佣(u on),,
从部门中选择名称,其中e.department_id=id作为部门,
从角色中选择名称,其中e.role\u id=role\u id AS role
由雇员担任
但我不知道该怎么做。我查到的所有内容都是关于联接的,这不是我想要的。通过猜测表的结构,并且假设所有员工都有一个部门id和一个角色id,您可以像这样重构原始查询:
SELECT
e.name,
e.hired_on,
d.name AS department,
r.name AS role
FROM employee AS e
JOIN department d ON e.department_id=d.id
JOIN role r ON e.role_id=r.role_id
在此基础上,您可以将连接与sqlalchemy一起使用:
session.query(Employee.name,
Employee.hired_on,
Department.name,
Role.name)\
.join(Department,
Employee.department_id==Department.id)\
.join(Role,
Employee.role_id==Role.role_id)\
.all()
如果您只是复制/粘贴它,这肯定不是一段可以工作的代码,但是想法就在那里