【发布时间】:2020-03-06 21:20:10
【问题描述】:
我正在尝试使用 django orm 编写一个“复杂”的子查询。
我有下表。
雇主表
雇主ID
雇主名称
部门表
部门编号
employer_id
员工表
员工姓名
部门编号
我的查询应该返回为雇主工作的所有雇员的姓名 (employee_name),其雇主名称为“Google”。
我有下面的 sql 查询,它工作得很好:
select * from Employee_Table where department_id in (
select department_id from Department_Table where employer_id in (
select employer_id FROM Employer_Table WHERE employer_name="GOOGLE" ) )
我是 Django orm 查询的新手,希望能帮助我理解它在 django orm 中的工作原理。
谢谢。
【问题讨论】:
-
我不是 SQL 专家,但我无法想象在简单的
JOIN就足够的情况下使用嵌套查询是个好主意。至于问题本身,请参阅here(我假设您的模型包含相关的外键 - 您不共享这些...) -
是的。我同意。最好是加入。但我只是想了解子查询如何为 orm 工作,而嵌套查询感觉像是显示流程的更好方式。
标签: python django-models subquery django-orm