我需要實現類似在同一層級
(SELECT table1.*, val=2 FROM table1 INNER JOIN table2 ON table1.id = table2.id WHERE some_condition)
UNION
(SELECT table1.*, val=3 FROM table1 INNER JOIN table3 ON table1.id = table3.id WHERE some_condition)
或
(SELECT val1, val2, val3, val=2 FROM table2 WHERE some_condition)
UNION
(SELECT val1, val2, val3, val=3 FROM table3 WHERE some_condition)
在不同類別之間的Django的ORM的語法使用UNION即具有類'table1','table2'和'table3',其中table2和table3是從table1派生的,我需要使用其他字段選擇它們。問題是我願意避免使用原始的sql查詢,因爲some_condition應該是可重用的。如果我嘗試使用額外的它抱怨我使用.extra
。
在這個查詢中'some_condition'的重複沒有問題 - 問題是1.它被用在許多其他查詢中,並可能返回大數據集,因此我不想將它緩存在內存2中。'some_condition'本身用於其他查詢。 – 2011-05-31 10:11:21