2014-07-03 88 views
5

如何獲取ID列表而不是SQLAlchemy對象列表?僅使用SQLAlchemy的語句SQLAlchemy從查詢中獲取ID列表

[x.id for x in random_query.all()] 

是否有這樣做的更好的辦法,較好的是: 目前我在做這個。

回答

4

SQL

SELECT DISTINCT `id` FROM `table`; 

的Python

for value in Session.query(Table.id).distinct(): 
    #Do something Append 
+1

究竟是什麼之間'[x.id的區別對於random_query.all()中的x和''random_query.distinct()中的x [x.id]''? – JelteF

+1

'查詢(Table.id).distinct()'是你正在尋找的。 .distinct()通過使用上面的SQL語句返回結果。如果你的id列被定義爲主鍵,那麼它的定義就不同了。但是,如果不是那麼.all()可能會多次返回多個id。 – 1478963

+2

謝謝,是的,這是有效的。唯一的問題是,它返回一個只有id的元組列表。 – JelteF

1
session.query(Thing.id).all() 

通常您查詢整個對象,但你可以查詢屬性太