Подтвердить что ты не робот

Выбор отдельных значений столбцов в SQLAlchemy/Elixir

В небольшом script, который я пишу, используя SQLAlchemy и Elixir, мне нужно получить все отдельные значения для определенного столбца. В обычном SQL это будет простой вопрос

SELECT DISTINCT `column` FROM `table`;

и я знаю, что могу просто запустить этот запрос "вручную", но я бы предпочел придерживаться декларативного синтаксиса SQLAlchemy (и/или Elixir), если смогу. Я уверен, что это должно быть возможно, я даже видел намеки на подобные вещи в документации SQLAlchemy, но я долгое время просматривал эту документацию (как и Elixir), и я просто не могу похоже, на самом деле выяснить, как это будет сделано. Так что мне не хватает?

4b9b3361

Ответ 1

Вы можете запрашивать свойства столбцов сопоставленных классов, а класс Query имеет генеративный метод distinct():

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

Ответ 2

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

Ответ 3

Для этого класса:

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

вы можете сделать это:

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

и у вас будет список различных значений