2015-08-18 53 views
0

最初的問題是從給定的ID列表中以相同的順序從DB中檢索文檔。使用原始的SQL我可以做這樣的如何在sqlalchemy中加入臨時表

select c.id, c.ctime 
from clusters c 
join (
    values 
     (910453, 5), 
     (910483, 2), 
     (910496, 1), 
     (910503, 4), 
     (910508, 3) 
) as x (id, ordering) on c.id = x.id 
order by x.ordering 

有沒有辦法做到這一點使用SQLAlchemy的?此外,生成的數據類型應該是sqlalchemy QuerySet,所以我不能使用python的排序的

回答

0

使用follwing查詢: -

select c.id, c.ctime 
from clusters c 
join (
     SELECT (910453 AS id, 5 AS ordering) UNION ALL 
     SELECT (910483, 2) UNION ALL 
     SELECT (910496, 1) UNION ALL 
     SEELCT (910503, 4) UNION ALL 
     SELECT (910508, 3) 
    ) as x on c.id = x.id 
order by x.ordering 
+1

謝謝你的回答,但問題是使用SQLAlchemy的,不是原始的SQL做同樣的事情。 –