Ответ 1
Вы можете запрашивать свойства столбцов сопоставленных классов, а класс Query имеет генеративный метод distinct()
:
for value in Session.query(Table.column).distinct():
pass
В небольшом script, который я пишу, используя SQLAlchemy и Elixir, мне нужно получить все отдельные значения для определенного столбца. В обычном SQL это будет простой вопрос
SELECT DISTINCT `column` FROM `table`;
и я знаю, что могу просто запустить этот запрос "вручную", но я бы предпочел придерживаться декларативного синтаксиса SQLAlchemy (и/или Elixir), если смогу. Я уверен, что это должно быть возможно, я даже видел намеки на подобные вещи в документации SQLAlchemy, но я долгое время просматривал эту документацию (как и Elixir), и я просто не могу похоже, на самом деле выяснить, как это будет сделано. Так что мне не хватает?
Вы можете запрашивать свойства столбцов сопоставленных классов, а класс Query имеет генеративный метод distinct()
:
for value in Session.query(Table.column).distinct():
pass
for user in session.query(users_table).distinct():
print user.posting_id
Для этого класса:
class Assurance(db.Model):
name = Column(String)
вы можете сделать это:
assurances = []
for assurance in Assurance.query.distinct(Assurance.name):
assurances.append(assurance.name)
и у вас будет список различных значений