次のクエリ:ウェイ
SELECT L1.task_id FROM task_log L1
LEFT JOIN task_log L2 ON L1.started BETWEEN L2.started AND L2.ended
WHERE L2.task_id IS NULL;
は、単純に他のタスクが実行していなかったときに開始されたすべてのタスクのログを読み込みます。 PHP/ZF2での抽象化は、次のようになります
$db->select(array('L1' => 'task_log'))
->columns('task_id')
->join(array('L2' => 'task_log'), "L1.started BETWEEN L2.started AND L2.ended", array(), 'left');
私はジャンゴで似たような、あるいは少なくともパイソンを探していました。 this discussionのように、これはdjangoのモデルでこれを構築するのは間違いです。 python/djangoに他の代替手段がありますか?文字列テンプレートと、おそらくいくつかの一般的なモデルフィールド反射コードで
(A)RawSQL
が、それはもう少し汎用的にする:
だから、Django ORMはあなたのニーズに合っていませんか? –
はい、そうではありません。しかし、私の質問は、Python/djangoでSQLを生成する方法についてです –
Django ORMを未加工SQLに変換するか、生SQLをDjango ORMに渡しますか? –