如何使用Django ORM执行这个复杂的SQL查询? (带连接的子查询)
我习惯于编写自己的SQL查询,并且我正在尝试习惯现在看起来如此受欢迎的整个ORM。
这是查询:
SELECT * FROM routes WHERE route_id IN (
SELECT DISTINCT t.route_id FROM stop_times AS st
LEFT JOIN trips AS t ON st.trip_id=t.trip_id
WHERE stop_id = %s
)
其中%s是整数。
我正在使用Django的默认ORM。什么是最pythonic的方式来做到这一点?
一些背景信息:我使用的数据库来自GTFS(Google Transit供稿规范)。这个查询应该得到一个经过特定stop
的每个route
的列表,但链接这些的信息在trips
表中。
这个查询对我来说很好,所以我要问的唯一原因就是学习。
谢谢!
没有找到相关结果
已邀请:
2 个回复
净爽
所用的内容,那么找出合适的方法可能会更容易一些。 基于您提到的工作规范,我假设以下内容如下:
如果是这样的话......你应该可以做类似的事情
通过主键
等于
得到所有经过给定
的
对象,我假设你的帖子是一个整数。 如果语法稍微偏离我道歉,因为我不需要使用显式额外表来执行多对多关系。如果您必须(或选择)对任何外键或多对多字段使用
参数,也可能需要进行一些调整。
蜂佬渺