Как перевести это в SQLObject: SELECT DISTINCT имя столбца, ГДЕ - PullRequest
1 голос
/ 08 ноября 2010

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

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

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

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

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

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

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

1 Ответ

1 голос
/ 08 ноября 2010

У меня нет большого опыта работы с 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
...