2013-04-28 59 views
0

我有一個查詢,我可以用原始sql做但我試圖將其轉換爲使用Django ORM。該查詢是:django中的大於子句的引用子查詢字段

SELECT a.journey_pattern_ref_id 
FROM(
    SELECT * FROM journeypatterntiminglink 
    WHERE from_stop_id = '0180BAC30249' 
) a, 
journeypatterntiminglink b 
WHERE a.journey_pattern_ref_id = b.journey_pattern_ref_id 
AND b.to_stop_id = '0180BAC30035' 
AND b.to_seq_no > a.from_seq_no; 

給我麻煩的部分是b.to_seq_no > a.from_seq_no。到目前爲止,我有

jps = (JourneyPattern.objects                          
      .filter(journeypatterntiminglink__from_stop=origin) 
      .filter(journeypatterntiminglink__to_stop=destination)) 
+0

難道不是我的回答工作? – 2013-04-29 03:11:12

回答

0

那麼,你應該使用F() expressions引用在查詢構造,而不是常量等領域。

推斷從你的問題你的模型的定義,它應該是這樣的:

from django.db.models import F 

jps = (JourneyPattern.objects 
     .filter(journeypatterntiminglink__from_stop=origin) 
     .filter(journeypatterntiminglink__to_stop=destination) 
     .filter(journeypatterntiminglink__to_seq_no__gt=F('journeypatterntiminglink__from_seq_no'))