在我使用SQLAlchemy和Elixir编写的一个小脚本中,我需要获取特定列的所有不同值。在普通的SQL中,这很简单
SELECT DISTINCT `column` FROM `table`;
而且我知道我可以“手动”运行该查询,但是如果可以的话,我宁愿使用SQLAlchemy声明性语法(和/或Elixir)。我敢肯定这是有可能的,我什至在SQLAlchemy文档中也看到过这种暗示,但是我已经花了数小时(以及Elixir)来浏览该文档,但我做不到似乎实际上想出了怎么做。那我想念什么呢?
您可以查询映射类的列属性,并且Query类具有生成distinct()方法:
distinct()
for value in Session.query(Table.column).distinct(): pass