practices how for example dummies best auth and python sql sqlalchemy python-elixir

python - how - Selección de valores de columna distintos en SQLAlchemy/Elixir



sqlalchemy for dummies (3)

En un pequeño script que estoy escribiendo usando SQLAlchemy y Elixir, necesito obtener todos los valores distintos para una columna en particular. En SQL ordinario sería una simple cuestión de

SELECT DISTINCT `column` FROM `table`;

y sé que podría ejecutar esa consulta "manualmente", pero prefiero seguir la sintaxis declarativa de SQLAlchemy (y / o Elixir) si puedo. Estoy seguro de que debe ser posible, incluso he visto alusiones a este tipo de cosas en la documentación de SQLAlchemy, pero he estado buscando esa documentación durante horas (así como la de Elixir) y simplemente no puedo parece que realmente descifrar cómo se haría. Entonces, ¿qué me estoy perdiendo?


Para esta clase:

class Assurance(db.Model): name = Column(String)

Puedes hacerlo:

assurances = [] for assurance in Assurance.query.distinct(Assurance.name): assurances.append(assurance.name)

y tendrás la lista de valores distintos


Puede consultar propiedades de columnas de clases mapeadas y la clase Query tiene un método generativo distinct() :

for value in Session.query(Table.column).distinct(): pass


for user in session.query(users_table).distinct(): print user.posting_id