Как перевести это в SQLObject: ВЫБЕРИТЕ DISTINCT имя столбца ГДЕ

Я просматривал документацию и форумы по http://sqlobject.org/ и sqlbuilder и не могу понять информацию там.

У меня есть конкретный запрос SQL, который мне нужен:

select distinct author from blogtable where keyword = "dust";

Несколько авторов могут оставлять сообщения о нескольких темах.

Запрос работает с базой данных MySQL, если я использую необработанный SQL-запрос. Но я не могу понять, что я должен сделать, чтобы это правильно работало в SQLObject.

Я вижу кучу ссылок на sqlbuilder, но страница руководства не очень обширна. Примеры, представленные в группах Google, также говорят так, как будто SQLbuilder является ответом, но опять же, нет конкретного примера (для моей проблемы), который я могу понять.

Может ли кто-нибудь хорошо разбираться в SQLObject объяснить мне, как я реализую вышеупомянутый SQL в SQLObject? Если это невозможно, могу ли я каким-либо образом передать исходный sql через SQLObject в базу данных?

1 ответ

Решение

У меня нет большого опыта работы с SQLObject, но из документов я делаю вывод, что это должно быть что-то вроде этого:

class Blog(SQLObject):
    class sqlmeta:
        table = 'blogtable'

    author = StringCol()
    keyword = StringCol()

Blog.select(Blog.q.keyword=='dust', distinct=True)

Версия 2

select = Select(
    [Blog.q.author],
    Blog.q.keyword=='dust',
    distinct=True,
)

sql = connection.sqlrepr(select)

for author in connection.queryAll(sql):
    print author
Другие вопросы по тегам